選択からカスタムリストを作成するためのExcel VBAマクロ


0

こんにちは私は誰もが私はカスタムリストに勝るために選択を追加するマクロを作成するのを助けることができるかどうか疑問に思いました。通常これを行うには、1つの列から一連の行を選択し、次にファイル、オプション、詳細設定、一番下までスクロールして[カスタムリストの編集]をクリックします。マクロ作成者がオンにした状態でこれを実行すると、選択した特定のセルに関連する非常に単純なスクリプトが得られます。カスタムリストに追加するために現在選択しているものがすべて使用されるように、コードを微調整したいと思います。そのように私はいつもJ4-J9範囲に縛られていません。以下は私が受け取るコードです。

Sub Customlistadd()
'
' Customlistadd Macro
'
' Keyboard Shortcut: Ctrl+Shift+I
'
    Application.AddCustomList ListArray:=Range("J4:J8")
End Sub

それはj4:j8の代わりに現在の選択を追加するのと同じくらい簡単ですか?もしそうならどのように私は正確にそれを書くのですか?現在のセクションを保持するために最初に変数型を宣言する必要がありますか?これまでに見たほとんどすべての例では、現在行っている選択範囲を保持するために変数を使用する傾向があります。ありがとうございました。

回答:


1

使用するようにコードを変更します。 Selection オブジェクト。現在選択されているセルが常に含まれます(複数選択されている場合)。すなわち

Application.AddCustomList Selection

また、カスタムリストに数字ではなく文字のみが含まれていることを確認してください。例えばA、B、C、D、E、F、G、...またはA1、A2、A3、A4、A5、A6、...は問題ありませんが、1、2、3、4、5は問題ありません。


私は以下の組み合わせを試しましたが、どれもうまく動きませんでした。もう少し説明をお願いします。 Application.AddCustomList ListArray:=Range("selection") Application.AddCustomList ListArray:=Range(selection) Application.AddCustomList ListArray:=Range selection" Application.AddCustomList ListArray:= selection Application.AddCustomList selection 私が試した組み合わせはどれも正しく動作しませんでした。私は構文をめちゃくちゃにしなければならないことを知っていますが、私はただどこに把握することができません。
small3687

Rhys Gibsonが投稿したとおりのコマンドを使用してください。いいえ ListArray または Range。ただ使う Application.AddCustomList Selection
teylyn

残念ながらそれは私がすでにコードを書き込もうとした方法ですが、それは実行に失敗します。 Sub Customlistadd() ' ' Customlistadd Macro ' ' Keyboard Shortcut: Ctrl+Shift+I ' Application.AddCustomList Selection End Sub これが私のコード全体であり、Selectionオブジェクトの行にとまってしまいました。他のアイデア?実行時エラー1004が出ます
small3687

カスタムリストに、数字ではなく文字のみが含まれていることを確認してください。例えばA、B、C、D、E、F、G、...は問題ありませんが、1、2、3、4、5は問題ありません。
Rhys Gibson

それらはテキストとしてフォーマットされている20桁の数字のストリングです。それが問題だと思いますか?
small3687

1

これを試して

Public Sub CreateCustomList()
  Dim v As Variant
  Dim rng As Excel.Range

  Set rng = ActiveSheet.Range("A1:A3")

  'Transpose from 2 dim array to 1 dim array
  v = Application.Transpose(Selection)

  'Add the custom list
  Application.AddCustomList v

End Sub

1

カスタムリストを追加、取得、削除してこれを試してください。  ヒント:空白セルは可算順序として扱います。空白セルは使わないでください

Sub CoustomList()

    Dim Arr() As Variant
    Dim N As Long    
    Application.AddCustomList ListArray:=Sheet1.Range("A2:A4")
    Arr = Sheet1.Range("A2:A4")
    N = Application.GetCustomListNum(Arr)
    Application.DeleteCustomList N

End Sub
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.