- 締切済み
変数の代入について
noname#157410の回答
やりたいことってこんなこと? http://www.moug.net/tech/exvba/0060086.htm ちょっと文章じゃイメージがわかないのですが。。??
関連するQ&A
- 変数の宣言について
VB2008を使用しています。 Excel内の文字をTextBoxに表示させているのですが、Excelのセル名を変数を使用して表示したいのですが上手くいきません。 TextBox1.Text = sheet.Range("A1").Value は正常に作動 TextBox1.Text = sheet.Range("A"&"1").Value も正常に作動 そこで、Aを変数にしようと考えたのですが、 Dim COLUMN As String Dim A As String COLUMN = A TextBox1.Text = syokuin.Range("COLUMN" & "1").Value としたところエラーになってしまいます。 解決策をご存知の方みえましたらよろしくお願いいたします。
- ベストアンサー
- Visual Basic
- エクセルVBA 変数への代入がうまくできない
エクセルVBA 変数への代入がうまくできない かなり初心者です。。。 選択範囲を変数に記憶したいのですがうまくいきません。 メソッドが対応していないとエラーになります。。。 stRng2に"A1:A8”のような範囲のデータを記憶したいのです。 dim stRng2 as Range stRng2 = wkb.Worksheets(stSheet1).Selection.Address(ColumnAbsolute:=False, RowAbsolute:=False) すいませんが、どなたか教えてください。
- ベストアンサー
- Visual Basic
- Excelマクロ:変数でセル範囲指定
マクロの迷い人です。 Excelの表をマクロで印刷しようと思っています。 行の数が毎回違うため、最終セルもその都度指定しなければなりません。 A1 B1 A2 B2 A3 B3 A4 B4 この例で、A5 B5 以降は空セルとします。 印刷範囲を Range("A1:B4")と書かずに、そのときどきのアクティブセルを変数に代入し、変数を使って範囲指定したいのです。 Sub MacroTest () Dim a As Variant Dim b As Variant Range("B1").Activate Do While a <> 0 ActiveCell.Offset(1, 0).Activate '空白でなければ一つ下に移る a = ActiveCell.Value Loop ActiveCell.Offset(-1, 0).Activate '上の行に移る b = ActiveCell.Value Range("A1:"& b).Select End Sub こうしてみましたがダメでした。 デバッグの方法がわからないので教えて下さい。よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VBA 変数代入とループ処理について
エクセルにてループ処理をしたいと考えています。 sheet1には連番が振ってあるデータが格納してあります。 sheet2にはsheet1の連番をB1に入力すれば必要なデータだけが出るようにvlookupで表示されるようにしてあります。 sheet3にはフォーマットが作ってあり、sheet2で表示されたデータがsheet3の対応した場所にデータが入るように作ってあります。 sheet2のA1に5 A2に20と入力したら連番5から20までsheet3が印刷するVBAを組みたいです。 変数の代入が間違っていると思うのですが、何が間違っているのか わからないので、質問しました。 以下にためしで組んでみたものがありますので、ご教授お願いします。 Dim temp1 Dim temp2 Dim temp3 Sheets("sheet2").Select temp1 = Range(A1).Value temp2 = Range(A2).Value temp3 = temp2 - temp1 While temp3 Sheets("sheet2").Select Range(B1).Value = temp1 Sheets("sheet3").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True temp1 + 1 Wend 初歩的なミスをしていると思うのですが、よろしくお願いします。
- ベストアンサー
- Visual Basic
- セルのパスが読み取らない
Excel一覧表をマクロで作成しています。 色々探して見つけたマクロを少し改良しようと思いましたが 初心者なのでなかなか思いどおりに行きません(T~T) すみませんがアドバイスをお願いします。 ~環境~ win XP Excel2000 です。 ~内容~ セル上のフルパス(B,1)を指示をし条件を付け フォルダーを選択(2コまで)と言ったマクロを 作成使用と思っています。 A B C D E 1 @パス 2 条件 3 フォルダー1 4 フォルダー2 5 6 以下記載 解らないところに"*"を付けています。 ~コード~ Sub ファイル名一覧() 'マクロ実行画面の凍結 Application.ScreenUpdating = False '変数宣言 Dim Path As String←*ここの部分追加しています。 Dim FileName As Variant '・・・ファイル名を格納 Dim FOLDER(2) As Variant Dim x As Integer '・・・FOLDER(x)とし検索するフォルダを更新する変数 Dim Gyou As Integer, LastGyou As Integer '・・・ファイル名を入力する行(増えるから変数) Dim 条件 As Variant 'パス格納 Path = Range("B2")←*ここの部分追加しています。 If Path = "" Then Exit Sub←*ここの部分追加しています。 '定数宣言 Const PAS As Variant = Path '・・・フォルダの場所 ↑*ここの部分が原因?"定数式必要です。"でます(T~T) Const Retu As Integer = 2 '・・・ファイル名を入力する列 '変数の初期値設定 x = 1 Gyou = 6 '・・・ファイル名を入力する開始行 FOLDER(1) = Range("D3") '・・・検索するフォルダ(1) FOLDER(2) = Range("D4") '・・・検索するフォルダ(2) '条件の格納 条件 = Cells(2, 4) ~~以下省略~~ 長々と書いてしまい申し訳ございません。宜しくお願いします。
- ベストアンサー
- Visual Basic
- 超基本 変数への代入教えてください。
dim mychr as string * 255 mychrという変数を255個宣言しているのは分かりますが、どうやって代入するかが分かりません。ちなみに mychr=vbnullstring '初期化 mychr="ABCDEFG" mychr="A" mychr(0)="A" 全部だめでした、本で調べるにも調べようがなく、ご教授お願いいたします。
- ベストアンサー
- Visual Basic
- VBA 変数Variantは万能??
エクセル2002使用です。 A1セル 日付入力(ex.2005/7/25) A2セル A1セルから月のみワークシート関数で取得 =month(A1) A3セル 日付入力 '12ヶ月分(ex.2005/7/25~2006/6/25) A4セル A3セルから月のみワークシート関数で取得 =month(A3) ’12ヶ月分 3行目、4行には12ヶ月分AからL列に同じ設定があります。 (この質問にはあまり関係ないですが・・・) A7セルにA2の値を参照して入力のため sub test() Dim Myrg as variant ’またはstring、Duble Set Myrg = Range("A4:L4") _ .Find(what:=range("A2").value, lookat:=xlWhole) range("A7").value = myrg end sub とすると、Myrgはemptyのままで数値を拾ってくれません。 A2セルとA4~L4セルをA5セルA6~L6セルにフォーマットして sub test() Dim Myrg as variant ’またはstring、Duble Range("A5").Value = Format(Range("A2").Value, "##") Range("A6").Value = Format(Range("A4").Value, "##") Range("B6").Value = Format(Range("B4").Value, "##") ’(以下12ヶ月分フォーマット) Set Myrg = Range("A6:L6") _ .Find(what:=range("A5").value, lookat:=xlWhole) range("A7").value = myrg end sub とするとちゃんと数値を拾ってくれます。 分からないのは、 1.変数variantは、万能ではないのでしょうか? 2.ワークシート関数で得た数値はすべて一度フォーマットする必要があるのでしょうか? フォーマットしない良い方法はあるのでしょうか? ちなみにキーボードから入力した数値もちゃんと拾ってくれます。 詳しい原因がわからないのでよろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VBAにて計算式をセルへ代入できなくて困っています
計算式を変数QRdataへ代入し その変数から指定のセルへ入力するとき、実行時エラー1004となってしまい マクロを実行できずに困っています。 Cells(3, 6).ValueもRange("F3").Fourmulaと変えたりしたのですが解決方法が解らなく どうか御教授下さい。 Dim コードナンバー As String Dim 品名1行 As String Dim QRdata As String QRdata = "=("& Chr(34) & コードナンバー & 品名1行 & Chr(34) & ",1)" Cells(3, 6).Value = QRdata ←ここでエラーとなってしまいます。
- ベストアンサー
- Visual Basic
- VBA セル範囲をVariant変数に代入
Dim myVar As Variant myVar=Range("A1:A10") などのようにセル範囲を変数に一気に入力して使う際、myVarは2次元配列になる筈です。セル数が1個だけの時は、ひょっとしてただの変数つまり配列にならないのですか?確信ありませんが、そう思えるエラーがありました。 気のせいならこのまま粛々とエラー対策を続けます。本当だったら、データ数で変数の型が変わるので都合が悪いです。どう対策すればいいですか?
- ベストアンサー
- Excel(エクセル)
- サブフォームに変数を代入し、RecordSourceの値を取得したい
サブフォームに変数を代入し、RecordSourceの値を取得したいのですがうまくいきません。 Sub test1() Dim サブフォーム As String Dim フォーム As String フォーム= "土台" サブフォーム = "フォーム1" MsgBox Form_フォーム1.RecordSource End Sub ******************************************************************* Sub test2() Dim サブフォーム As String Dim フォーム As String フォーム= "土台" サブフォーム = "フォーム1" MsgBox Form_フォーム1.RecordSource MsgBox Forms(フォーム).Controls(サブフォーム).RecordSource End Sub オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438) ******************************************************************* Sub test3() Dim サブフォーム As String Dim フォーム As String フォーム = "土台" サブフォーム = "フォーム1" MsgBox Forms(サブフォーム).RecordSource End Sub 実行時エラー'2450' マクロの式またはVisual Basic コート゛で参照されている 'フォーム名'フォームが見つかりません。 ******************************************************************* test1~3のうち test1のみはうまくいくのですが 変数を代入したいです。 ヘルフ゜のには Forms![受注]![受注サブフォーム].Formとなってますが これじゃ変数を代入できないですよね。 どうすればサブフォームに変数を代入しつつ、RecordSourceの値を取得できるのでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
補足
エクセルの数式バーに参照式が表示されてしまいます。 これは、必要ないので変数に代入しないで参照先にあるセルに表示されているデータのみを変数に代入したいのです。 質問の仕方が下手でした。ごめんなさい。