0

VBAユーザーからの入力を取得するファイルを使用してExcelを作成したい12または3

  1. xslmファイルを開いているときに実行するにはどうすればよいですか?

  2. ファイルに次のテーブルがあるとします。

ここに画像の説明を入力

これは、列および固有のコンテンツcommon dataに役立ちます。次のコードを使用したいので、ユーザーの入力に応じて、一意のデータをから、または一意のデータ の場所に選択します。しかし、列Aのデータを将来の使用のために再利用できるようにしたいです。たとえば、ユーザーが提供する場合、データはA BCABCA'sinput_num=1A's unique data

Sub main()
MsgBox ("welcome")

Dim input_num As Integer

input_num = InputBox(Prompt:="please select device", Title:="select device", Default:=3)

If input_num = 1 Then

    ' use the first column

ElseIf input_num = 2 Then

    ' use the second column

Else

    ' use the third column

End If

End Sub
4

1 に答える 1

3
1. How can I run it while opening the xlsm file ?

2. Using the column based on User input

Excelファイルの起動時にコードを実行するには、次を使用できます

Private Sub Workbook_Open()

End Sub

ここに配置するコードは、ファイルでマクロが有効になっている場合に実行されます。たとえば、次のコードを含むファイルを開くと、「Hello World」というメッセージ ボックスが表示されます。

Private Sub Workbook_Open()
    MsgBox "Hello World"
End Sub

以下のWorkbook_Open()スクリーンショットに示すように、Workbook Code 領域に移動します。

ここに画像の説明を入力

2番目の質問について

Excel では、名前だけでなく数字でも列を参照できます。たとえば、

列Aは次のように参照できます

Sheets("Sheet1").Columns("A:A")

また

Sheets("Sheet1").Columns(1)

これにより、ユーザー入力に基づいて列を直接参照できるようになるため、作業が容易になります。例えば

Private Sub Workbook_Open()
    MsgBox "welcome"

    Dim input_num As Variant

    input_num = InputBox(Prompt:="please select device", _
    Title:="select device", Default:=3)

    Select Case input_num
        Case 1, 2, 3
            With Sheets("Sheet1").Columns(Val(input_num))
                '
                '~~> Do what ever you want
                '
            End With
    End Select
End Sub
于 2012-09-24T16:21:20.037 に答える