[[20210122121710]] 『同じ変数を使用したい。』(フォーキー) >>BOT

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『同じ変数を使用したい。』(フォーキー)

お世話になります。
ユーザーフォームで、リストボックスや
コンボボックスなどのコントロールごとに
コードを作成しています。
その際、各イベントのプロシージャに

 Dim ws As Worksheet
 Set ws = Worksheets("Sheet1")

のようにシート名を設定しているのですが、
これを、すべてのモジュールで使用したいの
です。

変数だけなら、標準モジュールに

 Public ws As Worksheet

とすれば、すべてのモジュールで使用できまし
たが、

 変数ws = Sheet1

とする方法がわからないです。

 Sub ws_Set()
     Set ws = Worksheets("Sheet1")
 End Sub

のように、ワークシート名を格納した
標準モジュールを用意して、それを
参照させるやり方しか思い浮かびません。

正しいやり方があれば、教えてください。
よろしくお願いします。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


ブック起動時に変数に格納してはいかがでしょう?

https://excel-ubara.com/excelvba4/EXCEL239.html
(通りすがり) 2021/01/22(金) 12:55


正しいやり方かはわかりませんが、「ユーザーフォームで〜」とのことですから、↓のようにしてみてはどうですか?
    Option Explicit
    Private 変数WS As Worksheet
    '-------------------------------------
    Private Sub UserForm_Initialize()
        Set 変数WS = ThisWorkbook.Worksheets(1)
    End Sub
    '-------------------------------------
    Private Sub CommandButton1_Click()
        MsgBox 変数WS.Name
    End Sub

ちなみに、なんでもかんでもPublicにするのはお勧めしません。
http://officetanaka.net/excel/vba/variable/05.htm

(もこな2) 2021/01/22(金) 13:08


なるほど、立ち上げたときに格納しちゃえばいいんですね!
ありがとうございます。
(フォーキー) 2021/01/22(金) 14:15

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.