EXCEL VBAの質問です。


シート1に納品書
シート2に例文が入れてあって

例えばボタンを押せば、ユーザーフォームが立ち上がってシート2のセルに保管されているいくつかの例文が表示されて選択してボタンを押せば、その例文が現在選ばれているセル又は任意のセルにその例文を入れることはできますでしょうか?

コードを作ってくれた方にはポイントをたくさん差し上げます。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2007/05/08 08:32:59
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:takashi_m17 No.1

回答回数120ベストアンサー獲得回数20

ポイント250pt

http://excel2007.web.fc2.com/test.xls

こんなカンジでしょうか?


ダイアログの実行だけVBAを使用しています。

あとはドロップリストを使用し、抽出先にVLOOKUP関数で読み出します。

id:imagedive

ほぼ、希望通りなのですが

入力したテキスト文を少し変更して使いたいので、できたらテキスト文のみを抽出して入力したいのです。

具体的に言うと

TAKASHIさんが作ってくださった納品書のシートのA3部分のテキスト文を少しだけ変更させて使いたいのです。

ほとんど例文通りなのですが、少しだけ変更して使いたいと思っています。

例文のシートの文を変更すればいいだけの話なのですが、それでは例文が膨大になってしまうのでできたらA3のセル上で変更を加えたいのです。

それ以外のところはほぼ希望通りですので、

かなり助かりました。

もしできましたらよろしくお願い致します。

2007/05/07 17:56:26

その他の回答1件)

id:takashi_m17 No.1

回答回数120ベストアンサー獲得回数20ここでベストアンサー

ポイント250pt

http://excel2007.web.fc2.com/test.xls

こんなカンジでしょうか?


ダイアログの実行だけVBAを使用しています。

あとはドロップリストを使用し、抽出先にVLOOKUP関数で読み出します。

id:imagedive

ほぼ、希望通りなのですが

入力したテキスト文を少し変更して使いたいので、できたらテキスト文のみを抽出して入力したいのです。

具体的に言うと

TAKASHIさんが作ってくださった納品書のシートのA3部分のテキスト文を少しだけ変更させて使いたいのです。

ほとんど例文通りなのですが、少しだけ変更して使いたいと思っています。

例文のシートの文を変更すればいいだけの話なのですが、それでは例文が膨大になってしまうのでできたらA3のセル上で変更を加えたいのです。

それ以外のところはほぼ希望通りですので、

かなり助かりました。

もしできましたらよろしくお願い致します。

2007/05/07 17:56:26
id:SALINGER No.2

回答回数3454ベストアンサー獲得回数969

ポイント250pt

1の方のExcelファイルからユーザーフォームを追加して実現する方法


VBAでユーザーフォームを追加してComboboxとButtonを追加して1の方のようなフォームを作ります。

名前はデフォルトのComboBox1とCommandButton1にします。

Sheet1のコードを

Private Sub CommandButton1_Click()
    UserForm1.Show
End Sub

に変えて作ったユーザーフォームを呼び出すようにして

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

Private Sub ComboBox1_Change()
    Worksheets("納品書").Range("A3").Value = Worksheets("例文").Cells(ComboBox1.ListIndex + 4, 3).Value
    Worksheets("納品書").Range("A5").Value = Worksheets("例文").Cells(ComboBox1.ListIndex + 4, 4).Value
End Sub

Private Sub CommandButton1_Click()
    Unload Me
End Sub

Private Sub UserForm_Initialize()
    Dim i As Long
    
    ComboBox1.Style = fmStyleDropDownList
    CommandButton1.Caption = "OK"
    Me.Caption = "例文抽出"
    
    i = 4
    While Worksheets("例文").Cells(i, 2).Value <> ""
        ComboBox1.AddItem (Worksheets("例文").Cells(i, 2).Value)
        i = i + 1
    Wend
End Sub
id:imagedive

素晴らしいです。できました。ありがとうございました。

2007/05/07 20:57:50
  • id:taknt
    ユーザーフォームを含むものは、ちょっと回答欄に 記載できないね。

    メールでエクセルファイルを 送ってくれたら、
    それを 修正して 送り返してあげることは できるよ。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません