
No.2ベストアンサー
- 回答日時:
>でシート名を配列に入れたあと、
プロシージャ外(モジュールの先頭)で変数宣言を行うことで、パブリック変数(共用変数)として利用できます。
ユーザーフォームモジュールの先頭で宣言すれば、ユーザーフォームのどのプロシージャからも参照できます。
標準モジュールにPublic 宣言を付けて変数を宣言すると、他のモジュールからも参照できる変数になります。
>この配列SheetName()のデータをユーザーフォームへ受け渡しがうまくいかないのです。
配列データ(シート名)を効率的にボタン名に設定できないと言うことでしょうか?
Controls("コントロール名").Caption = "AA"
のような方法があります。
コマンドボタンの名前が1から始まっていると、下記のように応用できます。
For i = 1 To Ubound(SheetName)
Controls("CommandButton" & i).Caption = SheetName(i)
Next i
や
UserForm_Initialize()で
For i = 1 To Worksheets.Count
Controls("CommandButton" & i).Caption = Sheets(i).Name
Next i
とすれば、フォーム起動時にボタンにシート名が設定できます。
ボタンの数が多くなった場合は、「擬似コントロール配列」という方法でボタンをグループ化できます。
(VBでは普通にコントロール配列が使るので、VBAでは擬似となっています。)
http://www.moug.net/skillup/opm/opm08-01.htm
参考URL:http://www.h3.dion.ne.jp/~sakatsu/Breakthrough_P …
返答遅くなりすみません;;
回答ありがとうございます。
擬似コントロール配列というのがあるのですね。
初めて聞きました。
今の私には少々レベルが高いように感じられますので、
今後の勉強にさせて頂きます。
情報ありがとうございました!
No.1
- 回答日時:
>WorkSheetの全てのシート名を入れるにはどうしたらいいのでしょうか?
目的が良く解りませんが、シート名の取得は簡単に可能です。
http://www2s.biglobe.ne.jp/~iryo/vba/VBA07.html
(参考7-1 ブック内複数シート名の取得)
>戻り値や引数でデータの受け渡しで行うにはどうしたらいいのでしょうか?
サブルーチン(引数を元に処理する・もしくは引数無し:値は返さない)
sub Work1(引数)
処理
end sub
呼出方法 call Work1(引数)
関数(引数を元に処理・もしくは引数無し:値を返す事が可能)
function Job1(引数)
処理
job1=○○ :関数名に戻り値を設定
end function
呼出方法
変数=Job1(引数)
この回答への補足
回答ありがとうございます。
補足させていただきますと、
For i = 1 To Worksheets.Count
SheetName(i) = Sheets(i).Name
Next i
でシート名を配列に入れたあと、この配列をユーザーフォームのコマンドボタンにリスト表示させたいのです。
この配列SheetName()のデータをユーザーフォームへ受け渡しがうまくいかないのです。
ユーザーフォームをあまり使ったことがないので、
この受け渡し方法がよくわかりません。
ちなみに配列も受け渡せますよね?
すみませんが、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#でbyte配列から画像を表示さ...
-
OutOfMemoryExceptionの回避策...
-
Dir関数で読み取り順を操作でき...
-
エクセル VBA 変数を一括で宣言...
-
DBから取得した値を配列へ代入する
-
VB.NETの配列の限界を教えてく...
-
VBA 変数名に変数を使用したい。
-
エクセル(VBA)の空白配列の削除...
-
VB.NETの配列とArrayListについ...
-
VB.NETの配列にExcelから読み込...
-
配列の初期化に時間がかかりま...
-
2次元配列を部分的に削除する方法
-
順位をつける VB.NET2008
-
8bitインデックス画像の入出力方法
-
VBA どっちが速い?
-
Imagelist の使い回しについて
-
ReDim PreserveよりもReDimが遅い
-
POSTリクエストの投げ方
-
VBA フォルダ内のファイルを、...
-
VB6からの移行したいけど、VB.N...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
C#でbyte配列から画像を表示さ...
-
Dir関数で読み取り順を操作でき...
-
エクセルでXY座標に並べられた...
-
vba フィルター 複数条件 3つ以...
-
OutOfMemoryExceptionの回避策...
-
VB.NETの配列にExcelから読み込...
-
配列のペースト出力結果の書式...
-
レコードセットの中身を配列に...
-
配列の中の最大値とそのインデ...
-
大量の変数を定義するにはどう...
-
VBAでMODE関数をつくる
-
構造体配列内の文字列検索のよ...
-
構造体配列の特定のメンバーをF...
-
COBOLの基本的な事なので...
-
DBから取得した値を配列へ代入する
-
VBScriptでCSVファイルを読み出...
-
VB6からの移行したいけど、VB.N...
-
RPG 配列宣言について
-
コンボボックスのインデックス...
おすすめ情報