EXCEL2010 VBAの変数への代入方法とは?

このQ&Aのポイント
  • EXCEL2010のVBAを使用して繰り返し処理を行う際に、変数への代入方法について説明します。
  • 繰り返しのたびに変数Aに変数A+セルの番地を代入する方法を紹介します。
  • 変数の中の値を上書きせずに、現在の値を後ろに追加する方法を解説します。
回答を見る
  • ベストアンサー

EXCEL2010 VBA 変数への代入

EXCEL2010のVBAを使用しています。 処理で繰り返しの処理があります。 繰り返しのたびに変数Aに変数A+セルの番地(A1等)を代入していきたいのですがうまくいきませんどうすればよいでしょうか? 説明が下手ですみません。 ようするに変数の中の値を上書きせずに、現在の値を後ろに追加したいということです。 (例) 変数Bは最初は「1」 繰り返し1回目  変数A =変数A&Cells(1,変数B)   ’変数Bは繰り返しのたびに1ずつ増えます 繰り返し2回目  変数A =変数A&Cells(1,変数B) 一回目は変数AにはA1が入る 2回目の処理時にはA1B1というふうになり、上書きされず追加で代入される。 というようなイメージです。

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

もしかしてセルアドレスを変数に追加したいってこと?  変数A =""  For i = 1 To 10   変数A = 変数A & Replace(Cells(1, i).Address, "$", "")  Next i

Not_Pro
質問者

補足

はい。その通りです。 変数にセル番地を追加していきます。 変数Aも別の変数で使用していて関数の計算範囲で使用します。

その他の回答 (1)

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

変数A = "" For 変数B = 1 To x     変数A = 変数A & Cells(1,変数B) Next

関連するQ&A

  • [Excel VBA] 行の値を1つの変数に代入したい

    たとえばA1:A10に値があったら、3個ずつ値を1つの変数に代入したいのですがそのようなことは可能でしょうか?(改行は"%0D%0A"に置換します) たとえば、A1:A10に A B C D E F G H I J K とあったら、 1ループ目: strString = "A%0D%0AB%0D%0AC" のように代入したいのですが。 1つ1つのセルの値を追加代入していくしかないのでしょうか?

  • VBAでセルアドレスに変数を使いたい

    VBAでセルアドレスを変数を使って指定したいのですが、どの参考書にも載っていない。RangeやCellsでは特定の番地や相対番地しか指定できないですが。何か方法ありますか。

  • VBA 変数を使うべき?

    VBA 変数を使うべき? VBAを独学で勉強中のものです。 エクセルVBAでデータが入っている行数分処理を行いたい場合などに ------------------------------------------------ lastRow = cells(rows.count,1).end(xlup).row for i = 1 to lastRow ・・・ next i ------------------------------------------------ などと最終行を変数に代入して使う場合と ------------------------------------------------ for i = 1 to cells(rows.count,1).end(xlup).row ・・・ next i ------------------------------------------------ などと直接for文の中で指定する場合とでは結果は同じと思うのですが 結果以外の部分で見た場合どちらで行うほうがいいのでしょうか?

  • bシェルでシェル変数に変数に代入されている値の個数

    bシェル(Bourneシェル)で、シェル変数に変数に代入されている 値の個数を知りたいのですが、できるのでしょうか。 ----- #!/bin/sh A="1 2 3 4 5" echo $A 変数Aには、半角スペース区切りで、「1 2 3 4 5」と5個の値が 代入されています。 この設定されている値の個数、5を求めたいのですが、 どうすればよいのでしょうか。 Solaris8 Bシェル です。

  • 【Excel VBA】日付の代入

    現在以下の操作を行いたく、コードを作成しています。 ・20~23行で各最大値を抽出し、C列に代入する ・最大値に紐づく日付をD列に代入する ・D列の日付が入ったセルを改行し、 2行目に"(曜日)"を入力する <現在のExcelデータ詳細> A20:"処理1" A21:"処理2" A22:"処理3" A23:"処理4" B19~AF19:日付 B20~AF23:任意の数字 C31:処理1の最大値 C33:処理2の最大値 C35:処理3の最大値 C37:処理4の最大値 D31、D33、D35、D37:日付 L(曜日)を入力予定 最大値に紐づく日付をD列に代入するところで 躓いています。 ご教示いただけないでしょうか。 現在のコードは下記の通りです。 Sub 最大値の取得() Dim max As Long Dim row As Integer Dim column As Integer For row = 20 To 23 max = 0 For column = 2 To 32 If Cells(row, column).Value > max Then max = Cells(row, column).Value End If Next Cells((row - 20) * 2 + 31, 3).Value = max For i = 4 To 1 Step -4 '編集中 Cells((row - 20) * 2 + 31, 4).Value = Cells(row - i, column - 1) '編集中 Next End Sub

  • 変数にnullを代入するには

    諸事情で、変数の値をNullにしたいのですが、 Sub a() Dim mystr As String mystr = "moji" '他の処理 mystr = Null End Sub だと、実行時エラー94になります。 多分、NULLは値じゃないから代入できないんだと思いますが、どうすれば変数をnullにできるのでしょうか? String型が問題であれば、何にすればいいですか?

  • EXCEL/VBA 変数の値をクリップボードにコピーする方法

    EXCEL/VBAで、変数Xの値をクリップボードにコピーする方法を教えて貰えませんか。下記のように変数Xを一度セルに代入すると出来ますが、変数Xを直接クリップボードにコピーする方法が分かりません。 宜しく、お願いします。 Range("a1") = X Range("a1").Copy

  • VBAのペースト

    VBAのペーストについてです。 ある変数に値が入っていて、その変数を用いて別シートに貼り付けをしたいと思っているのですが、構文がわからなくて困っています!どなたか教えていただけませんでしょうか? お願いします。 Dim shopname as String 型宣言 shopname = Cells(3,21).value shopname変数へ代入 ....             shopnameに入っている値を3行目のB列に挿入したい...

  • excel/vba/public変数

    excel VBAで下記のようなコードを書きました。 他のプロシージャでも共通の変数を使用したいと思っています。 その為、public変数を宣言して使用したいと設定しましたが。 うまくいきません。 testmainを実行し、iに何も入っていないことを確認しました。 その後『1』を代入し、testmainは終了します。 testsubをその後実行し、iに先ほど代入された値を確認しようとしても何も代入されていない状態です。 全プロシージャでその変数を使用したいと思っているのですが、 何か方法、もしくはこのような使用方法ではないのでしょうか? public変数を使用してもプロシージャが終了すれば変数はクリアされるのでしょうか? 構造化の方法の問題上参照渡しや、戻り値など、指定する方が複雑になっていきます。 ご指導よろしくおねがいします。 Public i As Variant Sub testmain() MsgBox test i = 1 End Sub Sub testsub() MsgBox i End Sub

  • Excel2010 VBA 配列変数

    Dim 値(9,9,2) as Variant 値(2,5,1)="A" 値(2,5,2)="a" 選択数字が「1」だったら、Cells(2,5)に"A"が、選択数字が「2」だったら、Cells(2,5)に"a"が入力される処理を、If~Thenで考えたのですが、値の( )内の2、5、1、2の取得方法がわかりません。取得方法または他の方法がありましたら教えてください。

専門家に質問してみよう