Excel VBAでの入力方法に関する質問

このQ&Aのポイント
  • Excel VBAを使用してA列からD列の入力を一括で行う方法について質問しています。
  • E列以降に数式が含まれている場合には入力されないため、その対処方法を知りたいとのことです。
  • 具体的なコードや数式の例も示されており、マクロの使用やVLOOKUP関数の活用を希望しているようです。
回答を見る
  • ベストアンサー

入力の方法 その2

http://oshiete1.goo.ne.jp/qa5018717.html にてご協力いただいたものを再質問させていただきます。 A列からD列のみなら「ボタン124」をクリックすると7行から順調に入力されます。 しかしE列からF G H I 式などが入っていると、式が入っていない以外に入力されます・ 図(実際は2000行があります)で言うと 7 8 行のE~L 列に数式があります。 故に9の行に入力されます。 参考 1 ボタン124 マクロ Sub ボタン124_Click() Dim GYOU   '追加 GYOU = Range("A65536").End(xlUp).Row + 1 Cells(GYOU, 1).Value = Range("C1").Value Cells(GYOU, 2).Value = Range("C2").Value Cells(GYOU, 3).Value = Range("C3").Value Cells(GYOU, 4).Value = Range("C4").Value End Sub 2 E7 =TEXT(B7,"yymmdd")&C7 3 F7 =IF(C7="","",VLOOKUP(C7,売掛管理補助!$A$2:$B$201,2,FALSE)) & " " と言う具合に式が入っています。 多分マクロで何かの方法があると考えますがご教授いただけないでしょうか よろしく御願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.1

これでうまく行きますか? '下記の部分だけ置き換えてみてください GYOU = Range("B65536").End(xlUp).Row + 1 '上でダメならこれでは? GYOU = Range("C65536").End(xlUp).Row + 1 >7 8 行のE~L 列に数式があります。 関係ないと思います A8に数式か空白が入ってませんか なぜなら、このマクロはA列しか見ていませんので 参考まで

dorasuke
質問者

お礼

うまくいきましたのでご報告方々お礼申し上げます。 解決方法 B1  に「月度」 C1  に月度の数字・・例えば今月は 6 と A7からのA列は 書式 文字列 で解決しました。 ご協力感謝いたします。 今後ともよろしく御願いします。

dorasuke
質問者

補足

回答有難うございます。 B7 C7 D7 B8 C8 D8 とそれぞれの列は下記のB Cを変更して、いずれも上手く出来ますがA列に月度を表示したいがうまく出来ません。 ボタンを押して A列は1900/1/6となります。 「'下記の部分だけ置き換えてみてください GYOU = Range("B65536").End(xlUp).Row + 1 '上でダメならこれでは? GYOU = Range("C65536").End(xlUp).Row + 1」 A列に月度を表示するのは可能でしょうか。 「画像」で言うと A7 に 06 と表示したいのですが。 もし可能ならばご指導下さい。

関連するQ&A

  • VBAによる日付入力が

    いつもお世話になります。 WINDOWS7 EXCELL2010Qです。 「入力」のコマンドボタンをクリックして入力するのですがその時、 なぜか添付画像のように 02/01(N 2)と入力してもA列は01/24と表示されます。 N2の値がB列に入力されるマクロを下記のように設定してます。 何が原因かをご教示いただけないでしょうか。 「入力」 Sub 入力() Dim GYOU '追加 GYOU = Range("C65536").End(xlUp).Row + 1 Cells(GYOU, 2).Value = Range("N1").Value Cells(GYOU, 3).Value = Range("N2").Value Cells(GYOU, 4).Value = Range("N3").Value End Sub 「セルセット」 Sub セルセット() ' マクロ記録日 : 2010/4/30 ユーザー名 : YOKOHAMA Range("N1,N2,N3,N1").Select End Sub 以上ですがよろしくお願いします。

  • VBA最終行取得

    Sub 最終セル取得() Dim gyou As Integer gyou = 1 Do Until Cells(gyou, 1).Value = "" gyou = gyou + 1 Loop Range("C1").Value = gyou End Sub 上記のプログラムのどこを変えれば 文字が入力されている最終行の取得ができますでしょうか。 A列に入っている文字の最終行(セル)がC1に表示される というようにしたいのですが…; このまま実行すると1つ多いセル行が表示されてしまいます 同じような質問をしてしまって申し訳ありません; どなたかわかる方回答お願い致します Excelは2000です;

  • VBAで別の列のセルにも色付け~2

    WINDOWS XP EXCELL 2003です。 いつもお世話になります。 ご迷惑とは重々と承知しながら再度質問させていただきます。 1 御指導を賜りたいのは、 現在A列には月度を示す 01~12 が入力され月別にセルの背景色を塗りつぶしていますがこれをA列用のマクロを工夫してF列にも同様に適用したい。 例えば参照図で言うと A7 05 ピンク  A8 05 ピンク A9 06 ライトブルー  A10 07 草色 等のように ※ 参照図のF列のセルには背景色は適用していません。 2 参照図のそれぞれの設定は、   ※ 計画 と 生産はセル位置だけの違いで生産の方は割愛します。 D1 ユーザー定義 mm/dd D2 ユーザー定義 200000 D3 数値 A7 ユーザー定義 mm マクロ ボタン「計画入力」 Sub 計画入力() Dim GYOU '追加 GYOU = Range("C65536").End(xlUp).Row + 1 Cells(GYOU, 2).Value = Range("D1").Value Cells(GYOU, 3).Value = Range("D2").Value Cells(GYOU, 4).Value = Range("D3").Value End Sub ボタン「セルセット」 Sub 計画セル()    Range("D1,D2,D3,D1").Select End Sub A列のセル塗りつぶし Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row >= 8 And Target.Address = Cells(Rows.Count, "C").End(xlUp).Address Then Target.Offset(0, 0).Value = Date End If Dim c As Integer If Target.Column <> 2 Then Exit Sub If Target.Value = "" Then c = 0 Else On Error GoTo line Select Case Month(Target.Value) Case 1: c = 46 Case 2: c = 4 Case 3: c = 39 Case 4: c = 6 Case 5: c = 7 Case 6: c = 8 Case 7: c = 43 Case 8: c = 3 Case 9: c = 44 Case 10: c = 24 Case 11: c = 40 Case 12: c = 17 End Select End If Target.Offset(0, -1).Interior.ColorIndex = c Target.Offset(0, -1).Font.ColorIndex = IIf(c = 1, 2, 0) Exit Sub line: Target.Offset(0, -1).Interior.ColorIndex = 0 Target.Offset(0, -1).Font.ColorIndex = 0 End Sub 御指導よろしく御願いします。

  • 確認後、一発入力!!

    A1・C2・D4に入力すると、E列・F列・G列に上から順に表示させるみたいな ことは可能ですか? 1回目  ABCD      EFGH 15          567 2   6 3 4   7 2回目  ABCD      EFGH 13          567 2           3 5 3 4   5 みたいな感じで空白は空白で表示したいのですが、可能でしょうか?? という質問に対し、このマクロを教えていただいたんですが、 Private Sub Worksheet_Change(ByVal Target As Range) Dim myC As String Dim x As Range   If Intersect(Target, Range("A1,C2,D4")) Is Nothing Then Exit Sub   Select Case Target.Address(0, 0)     Case "A1": myC = "E"     Case "C2": myC = "F"     Case "D4": myC = "G"   End Select   If Cells(Rows.Count, myC).End(xlUp).Value = "" Then     Set x = Cells(Rows.Count, myC).End(xlUp)   Else     Set x = Cells(Rows.Count, myC).End(xlUp).Offset(1)   End If   x.Value = Target.Value End Sub 入力用セルがもっとたくさんある為、全て入力後に、確認してから EFGの列に反映させたいのですが、可能でしょうか? わかりずらくスミマセン・・・・・。 ヨロシクおねがいします。

  • エクセルVBAについて

    http://okwave.jp/qa/q7236213.html 上記質問の発展形なのですが 同様のことを E列に日付 F列に売上 G列に結果 でやりたいのですが この時A列~C列のマクロも残したままでしたいのですが 下記のように同様のプロシージャーを下段に書けばできると思ったのですが うまくいきません。 Private Sub worksheet_change(ByVal Target As Excel.Range) If Target.Address <> "$A$1" Then Exit Sub If Target = "" Then Exit Sub Range("C10:C65536").ClearContents With Range(Cells(9 + Range("A1").Value, "C"), Cells(Range("A65536").End(xlUp).Row, "C")) .FormulaR1C1 = "=MAX(RC2:R[" & -Range("A1").Value + 1 & "]C2,FALSE)" .Value = .Value End With End Sub Private Sub worksheet_change(ByVal Target As Excel.Range) If Target.Address <> "$E$1" Then Exit Sub If Target = "" Then Exit Sub Range("G10:G65536").ClearContents With Range(Cells(9 + Range("E1").Value, "G"), Cells(Range("E65536").End(xlUp).Row, "G")) .FormulaR1C1 = "=MAX(RC6:R[" & -Range("A1").Value + 1 & "]C6,FALSE)" .Value = .Value End With End Sub どなたかお知恵を拝借できませんでしょうか?

  • 指定セルを別ブックへ貼り付ける作業

    1.現在、見積書.xlsの見積汎用シートで以下の内容で同じブックのデータベース貼付シートに貼り付けています。 Sub データベース貼付() GYOU = Worksheets("データベース").Range("A65536").End(xlUp).Row + 1 Worksheets("データベース").Cells(GYOU, 1).Value = Range("H13").Value Worksheets("データベース").Cells(GYOU, 2).Value = Range("C8").Value Worksheets("データベース").Cells(GYOU, 3).Value = Range("C6").Value Worksheets("データベース").Cells(GYOU, 4).Value = Range("C15").Value Worksheets("データベース").Cells(GYOU, 5).Value = Range("D15").Value Worksheets("データベース").Cells(GYOU, 6).Value = Range("E15").Value Worksheets("データベース").Cells(GYOU, 7).Value = Range("G30").Value Worksheets("データベース").Cells(GYOU, 8).Value = Range("H1").Value 2.これを見積書.xlsの見積汎用シートを別ブックのデータベース.xlsのデータシートに貼り付けたいと思います。 3.以下の内容で仮に自分で貼り付けてみようとしましたがうまくいきません。 Sub コピーしてすべて貼り付ける() Workbooks("見積書.xls").Worksheets("見積汎用").Range(D6).Copy _ Workbooks("データベース.xls").Worksheets("データ").Range(B4) End Sub どのように、別ブックに指定したセルを貼り付けできるでしょうか?いろいろとサイトを見ましたがどうもうまくできませんでした。 説明がわかりづらく申し訳ないですが、どなたか教えていただけないでしょうか? よろしくお願い致します。

  • エクセル マクロを利用して繰り返して入力する方法

    マクロでA1B1C1D1E1F1セルに入力しF1入力後A2B2C2D2E2F2と 下方向へ繰り返し800行くらいまで入力し、それとB列はスキップしたいのですが下記の方法で別々のシートでは うまくいくのですが同じシ-ト内ではエラ-になってしまいます 次の行への移動 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 7 Then Cells(Target.Row + 1, 1).Select End If End Sub B列のスキップ Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Range("G1") <> "" Then If Target.Column = 2 Then Target.Offset(0, 1).Select End If End If End Sub どなたかご存じの方教えて下さい

  • ユーザーフォームテキストボックスの文字制限

    ダブルクリックでフォームを開くようにしてます。下記のままでしたらテキストボックスに何行でも入力できてしまい、転記先のセルは4行までしか表示ができません。テキストボックスに4行以上入力しコマンドボタンをクリックしたときにメッセージが出てセル値を取得したときに戻ればいいと考えています。説明が不十分ですがよろしくお願いします。 Private Sub UserForm_Initialize() TxtA.MultiLine = True TxtA.EnterKeyBehavior = True GYOU = ActiveCell.Row TxtA.Value = Range("c" & GYOU).Value End Sub Private Sub CommandButton1_Click() GYOU = ActiveCell.Row Range("c" & GYOU).Value = UserForm1.TxtA.Value Unload Me End Sub

  • 最終列に入力されている文字を表示する

    エクセルVBAで最終列に入力されている値の表示方法について教えてください。 最終行については表示できるのですが、最終列に入力されているものの表示がうまくいきません。 A列の最終行の値をセル”D1”に表示するについては Private Sub Worksheet_Change(ByVal Target As Range) Dim r As Long r = Cells(Rows.Count, 1).End(xlUp).Row Range("D1").Value = Cells(r, 1).Value End Sub でうまくいきました。 最終行、例えば3列目の10行目に”111”と入力されているときにセル”D1”に”111”と表示するようにはどうしたらよいのでしょうか。 どなたがご指南ください宜しくお願いします。

  • VBA 最終列に入力された値の表示について

    VBAで最終列に入力された値の表示について教えてください。 例えば10行目の10列目(J列)に”123”と入力された値をセル”D1”に表示させたいのですがどのようにすればよいのでしょうか。 A列の最終行については Private Sub Worksheet_Change(ByVal Target As Range) Dim r As Long r = Cells(Rows.Count, 1).End(xlUp).Row Range("D1").Value = Cells(r, 1).Value End Sub でうまく表示できたのですが、最終列についてなかなかうまくいきません。 どなたかご指南ください宜しくお願いします。

専門家に質問してみよう