プロが教える店舗&オフィスのセキュリティ対策術

ユーザーフォームで入力規則の複数条件のようなAパターンでは0123456789.0987654321.... Bパターンでは0896574123.9658741230...など英数字を検索でき、さらに選んだ英数字をセルに書き込みするものを作りたいのですがどのようにすればいいでしょうか?
初心者で知識がほとんどありません。
よろしくお願いします。

質問者からの補足コメント

  • ユーザーフォームは、コンボボックス1でパターン選び、コンボボックス2で英数字を検索。その英数字をコマンドボタンでセルAA5に書き込みをしたいのです。
    リストは、シート5にA3にパターン、A5に英数字が入ってるとしたらどのようなコードとなりますか?
    ユーザーフォームで作れるんですがコードの組み合わせがわかりません。
    ご教示お願いいただきたいと思います。よろしくお願いします。

    No.1の回答に寄せられた補足コメントです。 補足日時:2017/05/14 09:18
  • ありがとうございます。
    A列にパターンBに英数字の変更をしたいと思います。
    よろしくお願いします。

    No.2の回答に寄せられた補足コメントです。 補足日時:2017/05/14 09:51
  • そうです。こんなイメージをしていました。
    よろしくお願いします。

    No.3の回答に寄せられた補足コメントです。 補足日時:2017/05/14 13:54
  • GooUserラックさんが示されたもののコードはどのようにしたらいいのでしょうか?
    初心者の為、どう示したらいいかわかりません。ご教示お願いしたいと思います。
    よろしくお願いします。

      補足日時:2017/05/14 20:12

A 回答 (5件)

遅くなりまして申し訳ございません。


------------------------------------------------------------------------------------
Private Sub ComboBox1_Change()
Dim 行 As Long
Dim 列 As Long
If ComboBox1.ListIndex < 0 Then
MsgBox ("パターンを選択してください")
Else
ComboBox2.Clear
列 = ComboBox1.ListIndex + 1
With Sheets("データ")
For 行 = 2 To .Cells(Rows.Count, 列).End(xlUp).Row
ComboBox2.AddItem .Cells(行, 列).Text
Next
End With
End If
End Sub
------------------------------------------------------------------------------------
Private Sub CommandButton1_Click()
If ComboBox1.ListIndex < 0 Then
MsgBox ("パターンを選択してください")
Else
If ComboBox2.ListIndex < 0 Then
MsgBox ("値を選択してください")
Else
Sheets("結果").Range("AA5").Value = ComboBox2.Text
Unload Me
End If
End If
End Sub
------------------------------------------------------------------------------------
Private Sub UserForm_Initialize()
Dim 列 As Long
Dim 列終 As Long
With Sheets("データ")
For 列 = 1 To .Cells(1, Columns.Count).End(xlToLeft).Column
ComboBox1.AddItem .Cells(1, 列).Text
Next
End With
End Sub
------------------------------------------------------------------------------------
※ シート名や書き込みセルは適当に変更してください。
    • good
    • 1
この回答へのお礼

ご返答遅くなり申し訳ございません。
詳しくお答え頂きまして助かりました。
ありがとうございました。

お礼日時:2017/05/15 09:38

No.4 の修正



「Dim 列終 As Long」の行は不要です。
削除してください。(有っても問題なく動作はします)
すみませんでした。
    • good
    • 0
この回答へのお礼

GooUserさん
解決済のあとに申し訳ありません。
コマンドボタン1を押すとコードが再表示されるのですがなぜでしょう。
よろしくお願いします。

お礼日時:2017/05/15 15:08

No.2 の修正?



下図のようなイメージでよいのでしょうか?
「VBA ユーザーフォーム」の回答画像3
この回答への補足あり
    • good
    • 0

「シート5にA3にパターン、A5に英数字が入ってるとしたらどのようなコードとなりますか?」は、多分1つのセルの中で「.」でデータを区切っているのだと思いますが、いろいろな処理が面倒になって全くダメです。


パターンはA列、英数字はB列のように、1つのセルには1つのデータにした方が処理が格段に楽になるし、変更や追加も非常に楽になります。
いかがでしょうか?

どうしても今のままで処理したいのならばどこかに作業シートを作り、処理前にデータを分割する事をお勧めします。
この回答への補足あり
    • good
    • 0

ちなみにユーザーフォームの何を使うのですか?


「テキストボックス」「コンポボックス」「リストボックス」などありますが…

「パターン」の選択は「オプションボタン」を使うのですか?

「英数字を検索でき」はどこから検索するのですか?

「選んだ英数字をセルに書き込みする」はどこのセルに書き込みするのですか?
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!