• ベストアンサー

Excel コンボボックスについて

初めまして。VBA初心者です。 コンボボックスを使った計算書を作成しているのですがうまくいきません。 例えばコンボボックスのリストに甲、乙、丙と3つのリストがあり、 甲を選ぶとA1:A10のセルにB1:B10のセルの中身が上書きされ、乙を選ぶとA1:A10にC1:C10が上書きされる・・・というようなものを作りたいのですが・・・。 VBAの本やいろんなサイトを参考にしたのですがうまくいきません。 ChangingCellやReplaceを使ってみたのですがエラーになります。 どなたかよきアドバイスをお願いいたします。

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

  • ベストアンサー
  • WWolf
  • ベストアンサー率26% (51/192)
回答No.2

こんにちは 仮にシート2のA1からC10までに基準となるデータがあるとし、コンボボックスで選んだ項目にてシート1のA1からA10に上書きするという場合。 下記のコードをユーザーフォームのコードに貼り付けてください。 そしてシート2のA1からC10までを埋めてください。 Private Sub ComboBox1_Change() Dim S(2) As Range With Worksheets(2) Set S(0) = .Range("A1:A10") Set S(1) = .Range("B1:B10") Set S(2) = .Range("C1:C10") End With Worksheets(1).Range("A1:A10").Value = S(ComboBox1.ListIndex).Value End Sub Private Sub UserForm_Initialize() ComboBox1.Clear ComboBox1.AddItem "甲" ComboBox1.AddItem "乙" ComboBox1.AddItem "丙" End Sub 多分こんな感じを言ってるのだと思いますが、違えばすいません。 頑張って下さい。

mokomoko66
質問者

お礼

解決しました、ありがとうございます。

その他の回答 (1)

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

どこかに対応表を作っておくしかないと思います。 シートでもいいですし、VBAコード内でもいいです。 今回は三つだけですのでVBAコード内でもOKですね。 Select Case Me.ComboBox1.Value Case "甲" "甲"の場合の処理 Case "乙" "乙"の場合の処理 Case "丙" "丙"の場合の処理 End Select

mokomoko66
質問者

お礼

解決しました、ありがとうございます