• ベストアンサー

Excel VBAのInpuboxの文字列

Inputboxにセル番地A1を入れ戻り値を変数に格納してその変数をRange またはCellsに組み込む場合、どう記述すればいいでしょうか。

  • ss696
  • お礼率94% (868/915)

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

>セル番地A1を入れ戻り値を変数に格納してその変数をRange またはCellsに組み込む sub macro1()  dim s as string  s = inputbox("セル番地  A1 / B2:D5 / A4,B6,C7")  on error goto errhandle  range(s).select  exit sub errhandle:  msgbox "BAD DATA" end sub みたいな。

ss696
質問者

お礼

ありがとうございます。 すごく勉強になりました。

その他の回答 (1)

  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

「Range またはCellsに組み込む」とは具体的にどうしたいのか不明ですが、以下の様な感じにしてみて下しさい。 Sub macro() Dim R As Range On Error Resume Next Set R = Application.InputBox("セルを選択して下さい", Type:=8) On Error GoTo 0 If Not R Is Nothing Then MsgBox R.Address MsgBox Range("B" & R.Row).Address MsgBox Cells(R.Row, R.Column).Address End If End Sub

ss696
質問者

お礼

ありがとうございます。 Msgboxがこう使えるとは・・・ 助かりました。

関連するQ&A

  • エクセルのvbaが変数を使用すると上手く動作しない

    ものすごく初歩的な質問で恐縮ですが、教えて下さい。 やりたいことは、 「a」を変数として設定して、Cells(1, 1)を「a」に格納して、 セル番地A1に山という文字を入力しようとしています。 <test>の方は上手く動作してセル番地A1に山という文字列を入力できるのですが、 <test2>の方は、セル番地A1に入力してくれません。 おそらく変数の使い方がおかしいのだと思います。 a = Cells(1, 1)ではなく、test2のように、変数を使ってコードを記載したいのですが良い方法はありませんでしょうか? *************************************************************** Sub test () a = Cells(1, 1) Cells(1, 1) = "山" End Sub **************************************************************** Sub test2 () a = Cells(1, 1) a = "山" End Sub

  • エクセルVBAでセル選択するコードが変

    エクセルのワークシートでVBAでセル選択するコードで理解に苦しむことがあります。 通常、Cells(2, 1)はセル番地で言えばA2セル Cells(4, 1)はセル番地で言えばA4セルです。 しかし、 With .Range("B5:B15")でくくれば  .Cells(2, 1)はセル番地で言えばB6セルだと思います。 .Cells(4, 1) はセル番地で言えばB8セルだと思います。 ところが下記のコードを動かすと、なぜかC10:C12が選択されてしまいます。 この理屈がわかりません。 Sub test02()   With Sheets("Sheet1")     With .Range("B5:B15")       .Range(.Cells(2, 1), .Cells(4, 1)).Select     End With   End With End Sub なお、 .Range(.Cells(2, 1), .Cells(4, 1)).Selectを .Range(“A2:A4”).Selectに書きかえると、希望のB6:B8が選択されます。

  • Excel VBA Cells 絶対参照 書き方

    Excel VBAにてお尋ねいたします。 Excel VBAにてCellsを使用してセル範囲を指定させていただく際に、絶対参照($A$1:$E$10など)を使用する場合はどのように記述すればよろしいでしょうか? Cellsを使用するのは、セル範囲が毎回異なるため、範囲指定に変数を使用しているためです。 相対参照でしたら、Range(Cells(1,1),Cells(Rows<行番号の変数>,Cols<列番号の変数>))といった記述かと思いますが、絶対参照の場合はどのように記述すればよろしいでしょうか?

  • ExcelVBAでセルの番地を変数として扱いたいですが

    ExcelVBAでセルの番地を変数として扱いたいですが 例えばaという変数に『Range(Cells(2, 5), Cells(2, 8))』を入れたとします。 このセル番地は複数を指定していると思うのですが、 このセル番地すべてを一個下にずらす、つまりCells(1,0)をプラスしたいんですが、 どうしたら良いのでしょうか? a + Cells(1,0)ではダメでした。

  • VBA 文字列と数値の混在

    Excel VBA 独学中の初心者です。独学中の初心者です。 データ型に関する以下の疑問についてお答えいただける方、よろしくお願い致します。 疑問1.「文字列 & 数値」でエラーにならず、結果は文字列になるようですが、これはVBAの規則上当たり前のことでしょうか。 疑問2.InputBox関数の戻り値は、Typeを省略した場合文字列と思いますが、これを数値型の変数に代入してもエラーは発生しませんでした。これも当たり前のことでしょうか。 具体例は以下です。 ------------------ Option Explicit Sub 文字列と数値の疑問() '初期設定 Cells.Clear Range("A1").Select '本題はここから Dim i As Long Dim j As Long Dim strRange As String Dim strInput As String '------------------ '疑問1の例 i = 2 strRange = "A" & i '疑問1:文字列と数値変数(長整数型)を文字列連結演算子で連結してもエラーにならない。・・・なぜ? '結果は1つの文字列→strRange ="A2" '例 Range(strRange).Select '動作OK Range(strRange) = i '動作OK '------------------ '疑問2の例 strInput = InputBox("選択行を入力してください", , "4") 'strInputは文字列型変数 j = strInput '疑問2:数値変数(長整数型変数)に文字型変数を代入してもエラーにならない・・・なぜ? '結果は長整数型変数(数値) j=4 (Input BOX をデフォルトでOKしたとき) '例:以下の両方とも動作OK '1) strRange = "A" & strInput '文字列 & 文字列 →文字列 strRange ="A4";疑問なし Range(strRange).Select '動作OK Range(strRange) = strInput '2) Cells.Clear '確認用にクリアスクリーン Range("A1").Select '確認用にセル位置移動 strRange = "A" & j '文字列 & 数値 →文字列 strRange ="A4";疑問1と同じ Range(strRange).Select '動作OK Range(strRange) = j '動作OK End Sub

  • EXCEL 変数を使ったセルの範囲指定

    EXCEL2003です。 セルの番地を変数aaaとbbbにそれぞれいれています。 (例:aaaは"A1"のセル、bbbは"A4"のセル) 範囲を指定する(Range("A1:A4")のように)のに、 変数でする場合は、どのような記述にすればよいのでしょうか。 よろしくお願いします。

  • VBAで、複数の離れたセルを選択したい

    複数の離れたセルを選択したいのですが、うまくいきません。 A1とA4を選択する場合、通常は、 Range("A1,A4").select なのでしょうが、変数Qを使いたいのです。 セルA1はCells(Q,1)、セルA4はCells(Q,4)となり、 Range(Cells(Q, 1), Cells(Q, 4)).select なのかと思ったのですが、これだと、 Range("A1,A2,A3,A4").select になってしまいます。 離れたセルを変数を使い選択するには、どうしたらよいでしょうか?

  • VBA 文字列に関して

    現在 A22のセルに入力された文字列をボタンを押せば ばらばらにしてA22のセルから順番に入れるマクロを作りました (例)A22のセルに ”こんにちわ”の文字列が入っている場合 ボタン押下   ↓ A22のセル⇒こ B22のセル⇒ん C22のセル⇒に D22のセル⇒ち E22のセル⇒わ になる。 不思議なことに数字を16文字以上いれてボタンを押し文字を分離すると入力していない文字、数字が入ってしまいます。 数字だけこういう現象が発生してしまいます。 例えば "1111111111111111"と入力して文字を分離した場合 1.11111111111111E+15と個々のセルに格納されます。 原因がわかる方、教えて頂けないでしょうか? 以下がコードです。宜しくお願い致します。 Private Sub CommandButton1_Click()   Dim one As String   Dim myString As String   myString = Cells(22, 1)   numString = Len(Cells(22, 1))   If Len(myString) <= 50 Then    For i = 1 To Len(Range("A22").Value)      one = String(1, myString)      Cells(22, i) = one      myString = Replace(myString, one, "", 1, 1, vbTextCompare)    Next i   End If End Sub

  • vbaでセル取得について

    お世話になります。 初歩的な事なのですが、 変数を使ったセルの取得で、 range("a1:b2")を取得する場合に 数字の部分が変数だったらどういう記述になるでしょうか。 ”のつける位置が良く分からず、どうつけても赤字でエラー になります。またcellsの場合も行数や列数が変数の場合の 記述の仕方をお教え頂きたく宜しくお願い致します。

  • VBAで、セル(Range)のオブジェクトが取得できない

    セルの情報を取得したいのですが、何故か以下のように書くと上手い具合に取得できません(A、B、Cは数値の変数)。 ------ Dim Rng As Range 'セル範囲を格納 Set Rng = Worksheets(1).Range(Cells(A, B), Cells(A, C)) ------ 以下のようにしてやると、何とか取得できます。 Worksheets(lngASNo + 1).Select Set Rng = Range(Cells(A, B), Cells(A, C)) どこが悪いのでしょうか? もし、判る方がいらっしゃいましたら、よろしくお願いいたします。

専門家に質問してみよう