
こちらVBA初心者です。宜しくお願い致します。
A:Aを"出身地"、
B:Bを"データ"という名前で定義しており、
D1~D3を"選択"という名前で定義しています。
入力内容はこうです。
D1・・・空白
D2・・・出身地
D3・・・データ
そしてA列とB列の最初にある空白セルを見つける為に、
Range("出身地").Select
Selection.End(xlDown).Offset(1, 0).Select
もしくは、
Range("データ").Select
Selection.End(xlDown).Offset(1, 0).Select
で可能だと言う事がわかりました。
そして、それをユーザーフォームでコンボボックス内のRowSouceに選択と入力して、
コンボボックスでどちらかを選び、ボタンを押して実行。と、したいのですがここから先がうまくいきません。
VBAに関するサイトは多く、様々な場所で勉強させていただきましたがどうにも理解出来ませんでした。
どうか、お助け下さい。
No.2ベストアンサー
- 回答日時:
No.1です。
どうやら、質問を正しく理解できていなかったようです。
やりたいことは、こういうことかな?
Private Sub UserForm_Initialize()
Me.ComboBox1.RowSource = ActiveSheet.Range("選択").Address
End Sub
Private Sub CommandButton1_Click()
ActiveSheet.Range(Me.ComboBox1.Value).Range("A1").End(xlDown).Offset(1).Select
End Sub
・・・・・・・素晴らしい
なんといいますか、理想の形が120%叶った気分です。
さっそくこれの続きにかかりたいと思います。
ありがとうございましたm(_ _)m
No.1
- 回答日時:
UserForm1上に、ComboBox1とComboBox2、CommandButton1があり、
ComboBox1にはアクティブシートのA列、
ComboBox2にはアクティブシートのB列のデータをセット、
CommandButton1をクリックすると、
ComboBox1の値がアクティブシートのD2に、
ComboBox2の値がアクティブシートのD3に表示されるようにしたい
といったところでしょうか?
Private Sub UserForm_Initialize()
'ユーザーフォームの表示前にComboBoxのRowSourceを設定
With ActiveSheet
Me.ComboBox1.RowSource = .Range(.Range("A1"), .Range("A1").End(xlDown)).Address
Me.ComboBox2.RowSource = .Range(.Range("B1"), .Range("B1").End(xlDown)).Address
End With
End Sub
Private Sub CommandButton1_Click()
'ComboBoxの値をシートに出力
With ActiveSheet
.Range("D2").Value = Me.ComboBox1.Value
.Range("D3").Value = Me.ComboBox2.Value
End With
End Sub
A:Aを"出身地"、 B:Bを"データ"という名前で定義する必要はありませんが、
出身地を =OFFSET(Sheet1!$A$1,0,0,COUNTA(Sheet1!$A:$A),1)
データを =OFFSET(Sheet1!$B$1,0,0,COUNTA(Sheet1!$B:$B),1)
と定義しておけば、UserForm_Initializeのコードを
Private Sub UserForm_Initialize()
Me.ComboBox1.RowSource = "出身地"
Me.ComboBox2.RowSource = "データ"
End Sub
とすることも可能です。
この回答への補足
御回答ありがとうございます。
私に文章力が無いせいか、勘違いをさせてしまったのかもしれません;;;
完全に書き忘れてしまっている事もあり、そこの訂正も致します。
UserForm1にはComboBoxは一つだけでそこで選択したいのはD1~D3のセルに入力してある値
>入力内容はこうです。
>D1・・・空白
>D2・・・出身地
>D3・・・データ
D1は空白、D2は"出身地"という値、D3には"データ"という値が予め入っている状態
そしてD1~D3の名前を"選択"と定義してある。
コンボボックスのRowSourceに入れるのはその"選択"という範囲。
そこで選んだ方、今の状態なら"出身地"か"データ"
A:Aを"出身地"、
B:Bを"データ"という名前で定義しており、
出身地を選んだのであれば、
Range("出身地").Select
Selection.End(xlDown).Offset(1, 0).Select
データを選んだのであれば
Range("データ").Select
Selection.End(xlDown).Offset(1, 0).Select
これのどちらかをCommandButton1で実行したい。と考えております。
ComboBox1で選んだ値を、
Range("xxxx").Select
Selection.End(xlDown).Offset(1, 0).Select
のxxxxにどうやったら反映させられるのか?という事です。
それだと、ただセルを選択するだけなんじゃ?と、思われるかもしれませんがその通りです。
やりたい事はもうちょっと複雑なのですがまずはこれから。と思っております。
IF文を使うと長くなりそうですし、
(簡単に説明する為、D列には2つしか項目を入れておりませんが本当は9個の項目をComboBox1に入れたい)
何か簡単なものはないかと探していた次第でございます。
質問の題を"コンボボックスの値を参照する"と書いてしまったのもいけなかったのだとも思います;;;
改めて、よろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) ExcelVBA No.を自動連番で設定をしながらデータ入力をしたい 2 2022/08/03 18:19
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Excel(エクセル) excelVBAについて。 8 2022/12/11 13:47
- Excel(エクセル) Excel VBA 空白行があるセル範囲に色を付ける 3 2022/06/13 15:58
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでCOPYを繰り返すと、処理が...
-
【マクロ】並び替えの範囲が、...
-
Vba Array関数について教えてく...
-
Vba 型が一致しません(エラー1...
-
【ExcelVBA】値を変更しながら...
-
vbsでのwebフォームへの入力制限?
-
エクセルのマクロについて教え...
-
【ExcelVBA】5万行以上のデー...
-
VBAでセルの書式を変えずに文字...
-
【マクロ】開いているブックの...
-
Vba セルの4辺について罫線が有...
-
vb.net(vs2022)のtextboxのデザ...
-
Excel VBA 選択範囲の罫線色の...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
エクセルの改行について
-
VBAで特定の文字が入った行をコ...
-
WindowsのOutlook を VBA から...
-
Excel 範囲指定スクショについ...
-
【マクロ】シートの変数へ入れ...
-
エクセルのVBAコードと数式につ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Vba セルの4辺について罫線が有...
-
vbsでのwebフォームへの入力制限?
-
【ExcelVBA】5万行以上のデー...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
【マクロ】並び替えの範囲が、...
-
エクセルの改行について
-
エクセルのマクロについて教え...
-
vb.net(vs2022)のtextboxのデザ...
-
VBAでCOPYを繰り返すと、処理が...
-
VBA ユーザーフォーム ボタンク...
-
エクセルのVBAコードと数式につ...
-
エクセルのVBAコードについて教...
-
[VB.net] ボタン(Flat)のEnable...
-
【マクロ】変数を使った、文字...
-
改行文字「vbCrLf」とは
-
質問58753 このコードでうまく...
-
【マクロ】シートの変数へ入れ...
-
ワードの図形にマクロを登録で...
-
算術演算子「¥」の意味について
おすすめ情報