inputboxを使ったセルの指定方法について教えてください

このQ&Aのポイント
  • 質問文章全体の100文字程度の要約文を3つ作成し、文章の内容をまとめてください
  • 毎日入力するデータを指定するためのinputboxの使い方を教えてください
  • Case文を使用して1から31までのコピー元と貼り付け先を指定しようとしましたが、膨大なコードになるため断念しました。より効率的な方法を教えてください
回答を見る
  • ベストアンサー

inputboxを使ったセルの指定について教えてください。

セルA5を指定したいときに、Range("A5").Selectとするのでなく、 A1+inputboxで入力した数字”4”を使って 指定するにはどうしたらよいでしょうか? 教えてください。よろしくお願いします。 毎日入力するデータがあり、数箇所のシート、 セルにコピーペーストしています。 (どのワークブック、シートでも1日はA5、2日はA6、 と1行づつ下げていっています)。 Caseを使用して1から31までひとつひとつコピー元、 貼り付け先を指定しようとしましたが、 あまりにも膨大のため、入力ミスの元になると思いやめました。 そこで、何日のデータなのかをinputboxで入力しており、 それを利用して、セルの指定をしようと考えましたが、 手元の解説書やネットでも見つかりませんでした。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

一例です。 Sub test01() Dim dy As Integer dy = InputBox("何日ですか?") Cells(dy + 4, 1).Select End Sub

maripo
質問者

お礼

早速試してみたところ、やりたかった事ができました。 早い回答をありがとうございました。 もっと勉強します。

関連するQ&A

  • inputboxではセル番地が指定できず困っています。

    EXCEL2000のVBAで、フィルターオプション機能を自動化したいのですが、 抽出先が変動するので、inputboxでセル番地を選択しようとすると、セルを選択することができず、自分で「A1」などと入力すると、きちんとA1に抽出結果が出てくるのですが、自分でセル番地をinputboxに入力するのではなく、マウスでセル番地を指定したいのですが、どのような方法をすればよかったでしょうか? よろしくお願いします。ちなみ作ったVBAは以下のとおりです。(複数の表から同じ条件で抽出し、inputboxで指定したセル番地に抽出結果を出し、その右側に続けて抽出結果を貼り付けていくという感じで作っています) Sub 抽出() Dim Shouhin1 As String Dim Shouhin2 As String Dim Shouhin3 As String Shouhin1 = InputBox("抽出先を指定してください") Shouhin2 = "d" & Mid(Shouhin1, 2, 5)’二つ目の表の抽出先を指定 Shouhin3 = "g" & Mid(Shouhin1, 2, 5)’3つ目の表の抽出先を指定 Sheets("抽出先").Select Sheets("データ").Range("A5:c44").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Sheets("データ").Range("B1:B2"), CopyToRange:=Range(Shouhin1), _ Unique:=False Sheets("データ").Select Sheets("抽出先").Select Sheets("データ").Range("d5:f44").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Sheets("データ").Range("B1:B2"), CopyToRange:=Range(Shouhin2), _ Unique:=False Sheets("データ").Select Sheets("抽出先").Select Sheets("データ").Range("g5:i44").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Sheets("データ").Range("B1:B2"), CopyToRange:=Range(Shouhin3), _ Unique:=False End Sub

  • VBAの複数のセルのコピー法がわかりません。

    VBAの複数のセルを選択、コピーしようとしているのですができません。 エクセルで複数の選択&コピーができないので、普通のやり方ではできないとわかっています。でも、やりたいんです。どなたか、その方法に知恵を貸していただける方はいませんか? 現在、ダイアログボックスにて複数のセルを入力した情報について、それを他のシートにコピーしようとしています。 (なぜ、いちいちダイアログで入力しているのかというと、その入力情報を元に、オフセットで過ぎのセルの情報に移動しそれも個コピー&ペーストしようとしているのです。) Set IntTest = Application.InputBox(Prompt:=StrMsgTest, Type:=8) で、複数のセルを選んでもらった情報を他のシートにコピーしようとしています。 複数のセルのコピーができないので、今はUnionを使ってどうにかならないか試していますが、これまた全然わかりません。 Union(Range("g1:k8"), Range("h9:h19"), Range("g20:k30")).Select Selection.Copy Destination:=Worksheets("Sheet2").Range("A1") どなたか、「コピー&ペースト」について、またそれとともに「ダイアログ入力からのそのコピー&ペーストの方法」について知恵を貸していただけませんか?

  • エクセル 特定のシートを異なるブックの指定したシートにコピーするマクロ

    エクセルの"貼り付け先.xls"の(シート名="集計")を開いている状態で、 別の異なるブックの"貼り付け元.xls"の(シート名="sheet1")の内容を全部コピーして "貼り付け先.xls"の(シート名="集計元データ")へ貼り付けるマクロは どのようになりますでしょうか? いろいろ調べて下記のように書きましたが、 インデックスが有効範囲にありませんというメッセージが出て、 デバッグを確認すると Workbooks("貼り付け元.xls").Worksheets("Sheet1").Range("A1").Copy_の部分が黄色く表示されてきます。 (1) "貼り付け先.xls"と"貼り付け元.xls"は同じパソコンのマイドキュメントに保存されています。 (2)"貼り付け元.xls"の"Sheet1"はセルA1から入力されていて、 内容は毎日変わります。 (3)Range("A1")や("A1:IV65536")のセル番地をいろいろ変えたりしても同じでした。 Sub クリップボードを経由せずにコピー貼り付けする_異なるブック() Workbooks("貼り付け元.xls").Worksheets("Sheet1").Range("A1").Copy_ Workbooks("貼り付け先.xls").Worksheets("集計元データ.xls").Range ("A1:IV65536") End Sub

  • VBAでのセル範囲指定について

    お世話になります。 私が分からないのは、VBAでのセル範囲指定なのですが、 例えば、シートにデータが有、そのデータの1行目は見出しなので 2行目からデータが入っているセルまでの範囲を指定、コピーして 隣のシートに貼付したいのですが、そのデータの入力される範囲が 毎回違います。「CurrentRegion.Select」としてしまうと、1行目 の見出しまでも範囲指定されてしますので、どうやったら良いのか どなたかお教え頂きたく宜しくお願い申し上げます。

  • エクセルVBAのコーディング

    現在、次のようなことがやりたくてエクセルのコードを作ってみました。 ・データが書かれたエクセルの複数のsheetの特定のセルをコピーして、sheet1にコピーペーストしていきたい。 そこでこのようなコードを書いてみました。 Private Sub Worksheet_Activate() Sheet4.Select Range("A16").Copy Sheet1.Select Range("U63").Select Sheet1.Paste End Sub とりあえずSheet4のセルA16のデータをSheet1のU63にコピーペーストするようにしてみたのですが、うまくいきません。 この場合のコードの書き方をご教授いただけないでしょうか? どうぞ、よろしくお願い致します。

  • なぜ張り付けは、「セルを指定+.Paste」ではだ

    なぜ張り付けは、「セルを指定+.Paste」ではだめなのでしょうか? VBAを勉強しているのですが セルを指定+メソッドで セルに対して動作ができると覚えていました。 例えば、 Range("A1").Copy もRange("A1")でセルを指定して、Copyメソッドを使っています。 しかし、張り付けに関しては、 Range("A1").Paste をすると、 「オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438)」 と言うエラーになってしまいます。 それに、 「 Range("A1")」を入力して、「.」を入力すると、ヒントが出ますが そこにCopyはあるけど、Pasteは出てきません。 Pasteは特別な扱いなのでしょうか? そもそもPasteはメソッドではないのでしょうか? ちなみに Sub test() Range("A1").Copy Range("A2").PasteSpecial End Sub なら問題なくできました。 どなたか Range("A1").Paste がエラーになる理由を教えてください。 ご回答よろしくお願いします。

  • Excelのセル内改行について

    Excelのセル内に改行を含むデータが入力されています。 Excelでコピー&ペーストを行えば問題ないのですが、 メモ帳にペーストすると改行が ↑ と表示されてしまい、 1行になってしまいます。 メモ帳にペーストしてもセル内で改行されているように 改行したままで貼り付けを行うことは可能でしょうか? Sheet1:A1 あいうえおかきくけこ さしすせそ たちつてとなにぬねのはひふへほ メモ帳:貼り付け あいうえおかきくけこ↑さしすせそ↑たちつてとなにぬねのはひふへほ

  • インプットボックスで選択したシートをselectした

    先日ここで、インプットボックスを使ったシート間コピーを教えて頂きました。 その中で、コピー先を選択した後にそのシートがselectされた状態にして、ペースト確認のmsgboxを表示したいのですが、どの様したらいいのでしょうか? Sub コピー() Dim CopyArea As Range Dim PasteArea As Range On Error GoTo ErrorHandler Dim a As String Set CopyArea = Application.InputBox(prompt:= _ "コピー元を指定して下さい", Title:="コピー元", Type:=8) BUCK: Set PasteArea = Application.InputBox(prompt:= _ "貼り付け先を指定して下さい", Title:="貼り付け先", Type:=8) Sheets(****).Select If MsgBox("貼り付けます。" & Chr(10) & "よろしいですか?キャンセルで再選択。", vbOKCancel + vbQuestion) = vbOK Then CopyArea.Copy PasteArea Else GoTo BUCK End If Exit Sub ErrorHandler: MsgBox "処理が取り消されました" End Sub

  • 【VBA】コピー&複数個所のペースト繰り返し

    下記のように、1つの値をコピーし、別シートの複数個所(同じ列の違う行)へ順次ペーストしたいのですが、貼付けデータやペースト箇所が増えた場合でも対応できるようなVBAを教えてください。 よろしくおねがいいたします。 ========================================================= Sub コピペ() '←1人目をコピー Worksheets("“コピー元シート”").Range("B7").Select Selection.Copy '←貼付け Worksheets(“貼付シート”).Range("B9", "B37", "B65", "B93", "B121", "B149", "B177").Select Selection.PasteSpecial Paste:=xlPasteFormulas '←2人目をコピー Worksheets("“コピー元シート”").Range("B8").Select Selection.Copy '←貼付け Worksheets(“貼付シート”).Range("B11", "B39", "B67", "B95", "B123", "B151", "B179").Select Selection.PasteSpecial Paste:=xlPasteFormulas '←3個の値をコピー Worksheets("“コピー元シート”").Range("B9").Select Selection.Copy '←貼付け Worksheets(“貼付シート”).Range("B13", "B41", "B69", "B97", "B125", "B153", "B181").Select Selection.PasteSpecial Paste:=xlPasteFormulas '←4個の値をコピー Worksheets("“コピー元シート”").Range("B10").Select Selection.Copy '←貼付け Worksheets(“貼付シート”).Range("B15", "B43", "B71", "B99", "B127", "B155", "B183").Select Selection.PasteSpecial Paste:=xlPasteFormulas '←5個の値をコピー Worksheets("“コピー元シート”").Range("B11").Select Selection.Copy '←貼付け Worksheets(“貼付シート”).Range("B17", "B45", "B73", "B101", "B129", "B157", "B185").Select Selection.PasteSpecial Paste:=xlPasteFormulas End Sub

  • EXCELのマクロがわかりません・・・

    現在、A列にデータが並んでいるのですが、 これを7つ区切り(例:A1~A7、A15~A21)にして、 別シートに用意した表に行列を入れ替えて、 貼り付けるマクロを作っているのですが、 なにぶんVBは素人ですので、よくわかりません。 今作ろうとしているマクロは、 「元データ」セルのA1からA7までをコピーして、 「作成データ」セルのB2を起点として、 コピーした内容の行列入れ替えを行い貼り付け、 以後、「元データ」のコピー範囲を7つづつ 下にずらし、「作成データ」の貼り付け起点を 1つづつ下にずらして、「元データ」のA列の 最後までくりかえすものです。 必ず「Range」文で引っかかってしまうのですが、 何か構文的におかしいでしょうか? かなり急ぎですので、 わかる方、よろしくお願いしますっ!! 下に、作成したマクロを貼り付けます。 Sub Macro3() ' ' Macro3 Macro ' マクロ記録日 : 2005/12/5 ユーザー名 : *** Worksheets("元データ").Activate 開始行 = -6 終了行 = 0 ペースト行 = 0 Do 開始行 = 開始行 + 7 終了行 = 終了行 + 7 ペースト行 = ペースト行 + 1 開始セル番号 = "A" & 開始行 終了セル番号 = "A" & 終了行 ペーストセル番号 = "B" & ペースト行 Range("開始セル番号:終了セル番号").Select Selection.Copy Sheets("作成データ").Select Range(ペーストセル番号).Select Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False _ , Transpose:=True Loop End Sub

専門家に質問してみよう