• ベストアンサー

エクセルVBA ユーザー定義の値を変数に格納したい

Excel2003を使っています。 ユーザ定義を使ってセルへの入力をします。 例えば、 セルB1に AB1111 セルC1に AB2222 セルD1に AB3333 セルE1に AB4444 セルF1に AB5555 と入力します。 4桁の数字の前に"AB"が決まって付くので、ユーザー定義 "AB"##0000 を使って数字4桁だけ入力するようにしました。 そしてさらに、 エクセルVBAを使って、変数iに AB1111 を格納したいのですが、iには 1111 しか取得できません。 iに AB1111 を取得したいのですが、どなたか方法を教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • eden3616
  • ベストアンサー率65% (267/405)
回答No.1

RangeオブジェクトにValue(または省略)して参照した場合 値が格納されますが、Textで参照した場合は表示形式で取得することが出来ます。 Sub sumple()   Dim i As String   i = Range("B1").Text   Msgbox i End Sub

kasetsu
質問者

お礼

ご回答ありがとうございます。参考にさせていただいたところ、出来ました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

>ユーザ定義を使ってセルへの入力をします の意味がよくわからない。舌足らずと思う。 セルへの入力は 列方向として 1111 2222 3333 と入力し、セルの書式設定のユーザー定義の"AB"0000で AB1111 AB2222 AB3333 のように見えてます。 それをVBAでセルの値を拾うとき、 AB1111 AB2222 AB3333 のような値にしたいなら Sub test01() For i = 1 To 3 MsgBox Cells(i, "A").Text Next i End Sub が参考になろう。

kasetsu
質問者

お礼

ご回答ありがとうございます。参考にさせていただきました。

  • dogs_cats
  • ベストアンサー率38% (278/717)
回答No.2

dim i as string i="AB" & range("B1").value セルの値をcells()を用いfor~nextステートメンテで変数に格納するつもりなら、変数名を一次配列で宣言すると良いのでは。

kasetsu
質問者

お礼

ご回答ありがとうございます。参考にさせていただきました。

専門家に質問してみよう