人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルの質問です。
ダイアログを出して、A列にある選択肢を質問文としてプルダウン表示し、B列にある解答の中からそれを選んでもらい、その結果(例えば、A1→B18などの表現の仕方で)C列にそれを再び格納するVBAのスクリプトを教えてください。

●質問者: clinejp
●カテゴリ:コンピュータ ゲーム
✍キーワード:A1 エクセル スクリプト ダイアログ 表現
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● SALINGER
●60ポイント

回答もプルダウンから選択する方法を以下に。

(他にオポションボタンやリストボックスで選択する方法もあります。直接シート上で選択するにはユーザーフォームのモーダル属性を変えればできます)


まずユーザーフォームを追加します。方法は以下の最初のほう

http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_080.html


適当にコンボボックスを2つ追加します。名前はそのままにしてください。


ユーザーフォームのコードを

Const maxSitumon As Integer = 7 '質問の数
Const maxSentaku As Integer = 5 '選択肢の数

Private Sub ComboBox1_Change()
 Call ckb_click
End Sub

Private Sub ComboBox2_Change()
 Call ckb_click
End Sub

Private Sub UserForm_Initialize()
 Dim i As Integer
 
 ComboBox1.Style = fmStyleDropDownList
 ComboBox2.Style = fmStyleDropDownList
 
 ComboBox1.Clear
 For i = 1 To maxSitumon
 ComboBox1.AddItem Cells(i, 1).Value
 Next i
 
 ComboBox2.Clear
 For i = 1 To maxSentaku
 ComboBox2.AddItem Cells(i, 2).Value
 Next i
End Sub

Private Sub ckb_click()
 Dim c1, c2 As Integer
 
 c1 = ComboBox1.ListIndex + 1
 c2 = ComboBox2.ListIndex + 1
 If c1 = 0 Then Exit Sub
 If c2 = 0 Then Exit Sub
 
 Cells(c1, 3).Value = "A" & c1 & "→B" & c2 
End Sub

後は適当に自動保存した内容を以下に変えショートカットで呼び出したり、シートにボタンをつけて呼び出したりすればいいです。

Sub Macro1()
 UserForm1.Show
End Sub
◎質問者からの返答

実際のコードをありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ