
ユーザーフォーム上のコンボボックスから値を選択し、その値を変数として使いたいのですが、うまくいきません。
コンボボックスのコードで
Private Sub ComboBox1_Change()
moji1 = ComboBox1.Text
Range("A1").Value = moji1
のようにすれば、コンボボックスから値を選んだ時点でA1セルにその値をコピーできるのですが、同じユーザーフォーム上にあるコマンドボタンをクリックして実行する「マクロ1」にてこのmoji1という変数を使いたいのです。
マクロ1にて、上記と同じ
Range("A1").Value = moji1
というコードを記述しても、ユーザーフォームで選択した値が消えており、empty値となってしまいます。
原因をご存知の方はお教えください。
No.2
- 回答日時:
こんばんは。
プロシージャ内は、プロシージャレベル変数で、その範囲だけですが、変数を他のプロシージャで使用するなら、プロシージャの外に、モジュールレベル変数のMoji1 を置けば十分だとは思うけれども、以下のように、直接、ComboBox1の値をとればよいのでは?なお、モジュールレベル変数も、UserForm モジュールですから、ローカル変数です。
Private Sub CommandButton1_Click()
If ComboBox1.Text <> "" Then
Range("A1").Value = ComboBox1.Text
End If
End Sub
No.1
- 回答日時:
Private Sub ComboBox1_Change()
で、定義された変数(moji1)は、ローカル変数になるので、
Private Sub ComboBox1_Change()の中でしか有効ではありません
マクロ1で、Range("A1").Value = moji1 としても、このmoji1は
名前は同じでも、中身は別になります
moji1 をグローバル変数として定義すれば、ご希望の動作をさせることが出来ます
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd …
ただ、ひとつの変数を使いまわすと、マクロが大きくなるに従いミスの原因となる可能性が大きくなりますよ
マクロ1で、改めて
moji1 = ComboBox1.Text
で、読み込むか
"A1"に書き込んだ後なら、"A1"から読み込んだ方が良いと思います
moji1 = Range("A1").Value
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) ExcelVBA ドロップボックスで月を選択するとそれ以降のデータが残るようにしたい。 3 2022/12/16 14:53
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Excel(エクセル) 【VBA】エクセルで選択した範囲の値のみをクリップボードにコピーするコードについて 3 2023/03/08 17:41
- Excel(エクセル) Excelのマクロについて 2 2022/06/14 03:38
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
【Excel VBA】コンボボックスで選択した値の取得
Excel(エクセル)
-
コンボボックスの文字によるif文の作成
Visual Basic(VBA)
-
-
4
VBAコンボボックスで選択した値をシートに転記したい
Visual Basic(VBA)
-
5
コンボボックスにリストが表示されません・・・
Excel(エクセル)
-
6
コンボボックス内の文字サイズ変更
Excel(エクセル)
-
7
EXCEL VBA コンボボックス、テキストボックスが未入力のときメッセージを表示する方法
Excel(エクセル)
-
8
UserForm1.Showでエラーになります。
工学
-
9
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
10
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
11
Excel-VBAでInputBox+Pulldownは可能??
Visual Basic(VBA)
-
12
VBAコンボボックスの内容が反映されない
その他(プログラミング・Web制作)
-
13
コンボボックスの名前を変数にしたい。
Visual Basic(VBA)
-
14
Excel コンボボックスの値参照
Excel(エクセル)
-
15
Excel VBAで、ユーザーフォームの値を、モジュールで使用したい。
Visual Basic(VBA)
-
16
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
17
コンボボックスのインデックスが不正
Visual Basic(VBA)
-
18
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
19
フォームを開くときに、コンボボックスの値を選択(アクセスVBA)
Visual Basic(VBA)
-
20
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
尿検査前日に自慰行為した時の...
-
彼女のことが好きすぎて彼女の...
-
EXCELで条件付き書式で空白セル...
-
至急!尿検査前日にオナニーし...
-
リンク先のファイルを開かなく...
-
風俗店へ行く前のご飯
-
尿検査の前日は自慰控えたほう...
-
エクセルで空白セルを含む列の...
-
VLOOKUP関数を使用時、検索する...
-
値が入っているときだけ計算結...
-
2つの数値のうち、数値が小さい...
-
イタリアから帰国する際、肉製...
-
Excel 数値の前の「 ' 」を一括...
-
検便についてです。 便は取れた...
-
小数点以下を繰り上げたものを...
-
MIN関数で空白セルを無視したい...
-
【Excelで「正弦波」のグラフを...
-
腕を見たら黄色くなってる部分...
-
EXCELで式からグラフを描くには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
尿検査前日に自慰行為した時の...
-
至急!尿検査前日にオナニーし...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
値が入っているときだけ計算結...
-
リンク先のファイルを開かなく...
-
EXCELで条件付き書式で空白セル...
-
2つの数値のうち、数値が小さい...
-
VLOOKUP関数を使用時、検索する...
-
尿検査の前日は自慰控えたほう...
-
MIN関数で空白セルを無視したい...
-
小数点以下を繰り上げたものを...
-
風俗店へ行く前のご飯
-
エクセルで空白セルを含む列の...
-
Excel 数値の前の「 ' 」を一括...
-
【Excelで「正弦波」のグラフを...
-
納豆食べた後の尿の納豆臭は何故?
-
EXCELで式からグラフを描くには?
-
ある範囲のセルから任意の値を...
おすすめ情報