• ベストアンサー

エクセル VBA 変数を一括で宣言したい

こんにちは。VBAプログラム初心者です。 変数を宣言する際、 dim オーダ番号 as long, オーダ番号2 as long, …オーダ番号100 as long という内容を一括で宣言することは可能でしょうか? イメージ的には下のような感じなのですが。。。 dim i as integer for i = 1 to 100 dim オーダ番号i as long dim 単価i as long next マクロで便利にするつもりが余計面倒になっていて困っております。 解決策を教えていただけましたら幸いです。 何卒よろしくお願いいたします。

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

Dim オーダー番号(1 To 100) As Long オーダー番号(1) = 123 オーダー番号(20) = 456 MsgBox オーダー番号(1) & vbLf & オーダー番号(20) 配列変数にしてしまうとか?

hamanyaaki
質問者

お礼

回答ありがとうございます。 配列でできそうです!

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。 配列変数を使うのかどうかは、なんとも言えません。 ピンポイントの質問で聞かれたらそうなるとは思うものの、全体をみずにして、どうするべきかは判断が付きません。その変数をどう使うかであって、変数100個が必要であるかは分かりません。単に、値を置くのなら、ワークシートを利用してもよいのです。言い換えると、今のままのコードの延長で、そこだけを直せば済むかどうかは分からない、ということです。そこまでの自信があるなら、逆に、そのような質問は出ないはずです。 >マクロで便利にするつもりが余計面倒になっていて困っております。 それは、この手のプログラミング言語では、入力の手間は、何時間、何日、何ヶ月という時間を要しても、必要なら何千行も、手書きで書かなくてはなりません。手間自体は惜しんではいけません。しかし、不必要なコードを書くべきではありません。

hamanyaaki
質問者

お礼

ご指導ありがとうございます。 よく考えて見ます。

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

これこそ配列を使うケースであって、何でこんなことが質問になるのかな。 dim a(100) とか定義しますが、aがオーダー番号になっただけでしょう。 要素は添え字でなく、配列要素で指定すればよい。a(x)のx。 配列の導入の必要性説明で、普通A1,A2,A3,・・・と定義するのは大変なのでA(100)と配列を使うと便利ですと説明されます。質問者が問題を難しくして質問しているだけ。頭で、多分中身は何かの「オーダー番号」だとイメージしておれば済む話では。 質問者側に反論ががあればどうぞ。 変数なども名前表現でで性格や中身を十分は表せないのですから拘らなくて良いと思うが。上記でも、「何のオーダー番号?」だと言われれば(配列)変数名では表現できてないでしょう。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

>マクロで便利にするつもりが余計面倒になっていて困っております。 どのような使い方をするのか解りませんが、普通は配列を使います。 Dim オーダ番号(100) as Long http://www.officepro.jp/excelvba/array/index2.html http://pc.nikkeibp.co.jp/article/NPC/20070802/278891/

hamanyaaki
質問者

お礼

回答ありがとうございます。 配列でできそうです。 教えていただいたリンクも大変参考になりました。

関連するQ&A

  • Excel にて変数の宣言の仕方

    Excel2002を使用しています。 標準モジュール内で下記のように変数を宣言すると Dim i,k as long (例)kには、あるセルの値を取得します。10000 Keta=len(k) この結果、ketaには、「4」という結果になります。 10000なので、「5」が返らないといけないのですが、うまくいきません。 ところが、 Dim i ,k ,m as long このように変数kの後ろに他の変数(今回はm)を記載すると、 「5」という結果が返ってきます。 変数の宣言の仕方が間違っているのでしょうか? よろしくお願いいたします。 ちなみに、 Dim k as long としても、「4」の結果が返ってきました。 同じ行に他の記載をしないとうまくいかないようです。。。

  • エクセルVBAでの変数

    いつもお世話になります。 今回の『壁』は”変数”です。 変数の中に更に変数を持たせることはできますか? 何をしたいかと言いますと… dim mon1 as string dim mon2 as string dim mon3 as string dim mon4 as string dim mon5 as string dim tue1 as string dim tue2 as string …というように月曜から日曜までの頭3文字プラス1~5の組み合わせの変数を作りたいのですが、 この調子で作っていくと35コになってしまいます。 そこで、曜日の頭3文字より後ろは決まって1~5のため、 dim i as integer for i = 1 to 5 next i …と組み合わせられないかと思ったのです。 どなたか知恵をお貸しください。 よろしくお願いします。

  • VBAの一括型宣言について

    VBAにて 変数の先頭がA~Gまでの文字で始まるものはすべてsingle宣言をしたいのですが 昔使っていた記憶があるのですが忘れてしいました 現在も使用可能であれば宣言方法お教えください。 ex dim A1 as single dim B2 as single dim Ga as single これを ○○○ A~G as single のように宣言したい、 環境 offixe 2010 os windows 7

  • VBAにおいて、""内で変数を使用したい

    VBAにおいて、""内で変数を使用したい 0864_001.xls 0864_002.xls … 0864_009.xls というファイルがあるとき、0864_001.xlsを開く→処理→閉じる→0864_002.xlsを開く→… というように処理をしたいと思い、以下のようなマクロを作成しました。 Sub Test() Dim i As Integer For i = 1 To 9 Workbooks.Open ThisWorkbook.Path & "\0864_00i.xls" 処理 閉じる Next i End Sub 実行しようとしてもファイルを開くことが出来ずに困っています。 ""内で変数を使うことは出来ないのでしょうか? また、どのようにすれば実行できるようになるのか教えてください。

  • VBAの変数宣言について

    VBAの変数宣言について サイトを調べながら仕事で色々と自動化しています。VBAを学び始めてまだ日が浅いので疑問は尽きないのですが、一番気になるところを一つ。 変数宣言の As ~ ってのがどうも苦手です。 とりあえず変数として使いたいけど、As ~ の ~ でなにを入れたらいいか分からず、入れないまま使っています。やはり、良くないのでしょうか? 上手に覚えるコツはありますか?

  • エクセルVBA:ある有名な方のサイトで・・・

    VBA初心者です。よろしくお願いします。 いま、VBAを勉強しています。 有名なT氏のエクセルVBAに関するサイト(オフィスT・・)の、「高速化テクニック」のところで、下記、★ ★ ★以下のような例がありました。 「Cells(j, 1).Font.FontStyle = "太字"」 が目的の作業であるならば、 「Dim i As Integer」「For i = 1 To 100」を何のために宣言し、記述しているのでしょうか?「j」の変数の宣言は「Cells(j, 1).・・・」で理解できますが、「i」の宣言また、「For i = 1 To 100」は不要のように思われるのです。 最初は何かの間違いかと思っていましたが、同氏の他の解説にも同様の記述がありましたので、きっと、意味があるのですね。教えてください。 ★ ★ ★ Sub Test2() Dim i As Integer, j As Integer For i = 1 To 100 For j = 1 To 10 Cells(j, 1).Font.FontStyle = "太字" Next j Next i End Sub

  • 変数を動的に作るには?

    変数を作成する際には必要な分だけ一つずつ宣言する必要があるのでしょうか? 例えば、連番を格納する文字列型変数を一時的に100個必要だとすると Dim textdat1 As String = "Number1" Dim textdat2 as String = "Number2" Dim textdat3 as String = "Number3"      ・      ・      ・ と100個宣言しないといけないと思うのですがこれを For i As Integer = 1 To 100 Dim textdat(i) As String = "Number" & i Next i という様な形で変数を作成することは出来ないのでしょうか。 初歩的な質問かもしれませんが、よろしくお願いします。

  • VBでの変数宣言は1行に2つできないのですか?

    Visual BASICで変数宣言は1行に2つ以上記述しても実際、動作します。 例 DIM A、B as Integer このように宣言すると、AもBも整数となります。 しかし、このように宣言して、この変数を Call サブプログラム名(B) のように、パラメ-タとして引き渡そうとするとエラーとなってしまうようです。 よくわからないまま、 DIM A as Integer DIM B as Integer と分けて記述したらエラーがきえたようです。 変数宣言は1行に2つ以上まとめて記述してはいけないのでしょうか? VBは Ver 5 です。

  • Excel マクロ:変数を複数使う場合

    マクロ初心者です。 For文で、変数を2つ定義し、それぞれが1つずつ増えてくれるような マクロを組みたいのですが、うまくいきません。 例えばA列の並んだ数字を、B列に一個とばしで入力するとして・・・ 例) Dim i As Integer Dim j As Integer For j = 2 To 10 Step 2 For i = 1 To 9 Cells(j, 2).Value = Cells(i, 1).Value Next i, j ではだめですよね。iが1つ増える時に、jも1つ増える、 というようにVBAを組むことが可能なのでしょうか? ど素人な質問ですみませんが、教えてください。

  • VBAの変数について

    VBAでUserFormからデータを入力します。 入力された各データをTarget1~Target20に代入します。 各Targetにデータが入っている場合は、配列K(i)に「1」を格納します。 そこで、Target "1"~"20" を変数iであらわしたいのですが、どのように表現したらよいのでしょうか。 Dim i As Integer Dim K(20) As Integer Target1 = TextBox1.Value Target2 = ComboBox1.Value : : Target19 = TextBox12.Value Target20 = ComboBox8.Value For i = 1 To 20 If 『  ?   』 <> "" Then K(i) = 1 EndIf Next i

専門家に質問してみよう