
以下のコードは、モジュール名が aiueo Module4 という2つの
マクロを、ブックにインポートするマクロ です
単純に同じコードを2つ書いているだけです
当該マクロを、もう少し簡略化する事はできますか?
ご存じの方、教えて下さい
【コード】
Sub moduleImport_Single()
'インポート対象のモジュールファイルを指定
Dim s As String
s = "C:\Users\2020\OneDrive\マクロ\マクロファイル\aiueo.bas"
'指定のモジュールをインポート
ThisWorkbook.VBProject.VBComponents.Import s
'インポート対象のモジュールファイルを指定
Dim m As String
m = "C:\Users\2020\OneDrive\マクロ\マクロファイル\Module4.bas"
'指定のモジュールをインポート
ThisWorkbook.VBProject.VBComponents.Import m
End Sub
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんにちは
>当該マクロを、もう少し簡略化する事はできますか?
>ご存じの方、教えて下さい
通常なら、共通部分をまとめて処理できるような構造にすると思います。
すでにNo1様が回答なさっているようにプロシージャ化して処理するのが一般的かも知れません。
一方で、ご提示の内容に限って言うなら、「同じフォルダ内の複数のモジュールをインポート」しているだけの単純なものなので、以下のような考え方もできますね。
(数が多いようならループ処理にすれば良いです)
Sub moduleImport_Single()
Const addr = "C:\Users\2020\OneDrive\マクロ\マクロファイル\"
With ThisWorkbook.VBProject.VBComponents
.Import addr & "aiueo.bas"
.Import addr & "Module4.bas"
End With
End Sub
気になるのは、何度も実行するようなものではないはずですので(=重複して同じものをインポートする必要はない)、そのあたりをどう考えているのか不明ですけれど・・・
「インポートされていない場合に読み込む」ということはあり得ると思いますが、ご提示の処理はそうはなっていませんし・・
一回だけの使い捨ての処理なら、記述効率などはあまり気にする必要もないと思います。
ThisWorkbookは保存せずにインポートを残さないのなら、毎回読み込んでもよいですけれど、読み込み時間の無駄にも思えます。
また、ご提示のプロシージャをブック等で配布するのなら、そのブックに先にモジュールを読み込んでおけば、ご提示のプロシージャは不要のようにも思えます。
以下は、変数だと4行になるので、あえて、定数 constに
したのでしょうか??
Const addr = "C:\Users\2020\OneDrive\マクロ\マクロファイル\"
【変数の場合】
Dim s As String
s = "C:\Users\2020\OneDrive\マクロ\マクロファイル\aiueo.bas"
Dim m As String
m = "C:\Users\2020\OneDrive\マクロ\マクロファイル\Module4.bas"
No.1
- 回答日時:
対象ファイルの置き場所が決まってるなら、
Sub moduleImport_Single()
' 2つのモジュールをインポート
Call moduleImport_Single_Sub("aiueo.bas")
Call moduleImport_Single_Sub("Module4.bas")
End Sub
とかってして、
moduleImport_Single_Sub(fname as string)
の中でもうちょっとエラーチェックとかする。
そういう処理も無いなら、あんまり簡略化する事も無いかも。
少なくとも、文字列変数は使わなくても支障なさそうだけど。(長いけど)
ThisWorkbook.VBProject.VBComponents.Import "~\~\~\aiueo.bas"
ThisWorkbook.VBProject.VBComponents.Import "~\~\~\Module4.bas"
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
vbe でのソースコード参照(msgbox)について
Excel(エクセル)
-
excelVBAについて。
Excel(エクセル)
-
excelVBAについて。
Excel(エクセル)
-
-
4
excelVBAについて。
Excel(エクセル)
-
5
VBA の単語の意味を教えて下さい。
Excel(エクセル)
-
6
【マクロ】重複する同じ行を、削除でなく1番下の行に回し色を付ける為には
Excel(エクセル)
-
7
excelVBAについて。
Excel(エクセル)
-
8
excelVBAについて。
Excel(エクセル)
-
9
フィルターをかけた時の、別の列に書いてある数字の表に現れた数量のみを表す式を教えてください。
Excel(エクセル)
-
10
excelVBAについて。
Excel(エクセル)
-
11
フィルター時の、別の列に書いてある数字の表に現れた個別の数字の数量のみを表す式を教えてください。
Excel(エクセル)
-
12
エクセル初心者です 用語とか良く分からないので簡単に説明していただけると幸いです 表を作っているので
Excel(エクセル)
-
13
UNIQUE関数、配列数式を使わずに品名ごとの集計を求めたい
Excel(エクセル)
-
14
excelVBAについて。
Excel(エクセル)
-
15
excelVBAについて。
Excel(エクセル)
-
16
エクセル初心者です 用語等まだ良く分からないので簡単に説明していただけると幸いです タブの挿入、図形
Excel(エクセル)
-
17
【マクロ】メッセージボックスにて、キャンセルをクリックしたら、マクロ終了。エクセルへ戻すには
Excel(エクセル)
-
18
【マクロ】複数の日付データをYYYY/MM/DDに読替えて、別ブックへ転記したい
Excel(エクセル)
-
19
スプレッドシートで適切な条件式(関数)のつくり方
Excel(エクセル)
-
20
実務の処理について。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
表計算ソフトでの様式の呼称
-
vba テキストボックスとリフト...
-
エクセルのVBAで集計をしたい
-
【画像あり】【関数】指定した...
-
【マクロ】数式を入力したい。...
-
【マクロ】元データと同じお客...
-
【マクロ】実行時エラー '424':...
-
【画像あり】オートフィルター...
-
Office2021のエクセルで米国株...
-
【マクロ】左のブックと右のブ...
-
【マクロ】【相談】Excelブック...
-
他のシートの検索
-
【マクロ】【配列】3つのシー...
-
エクセルのライセンスが分かり...
-
エクセルでフィルターした値を...
-
エクセルに写真が貼れない(フ...
-
エクセルシートの見出しの文字...
-
【マクロ】【画像あり】❶ブック...
-
セルにぴったし写真を挿入
-
エクセルのリストについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】元データと同じお客...
-
エクセルの関数について
-
【画像あり】オートフィルター...
-
エクセルのVBAで集計をしたい
-
エクセルのリストについて
-
【マクロ】数式を入力したい。...
-
【マクロ】【相談】Excelブック...
-
Office2021のエクセルで米国株...
-
【マクロ】実行時エラー '424':...
-
他のシートの検索
-
エクセルの複雑なシフト表から...
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
【マクロ】左のブックと右のブ...
-
【マクロ】変数に入れるコード...
-
エクセルシートの見出しの文字...
-
【マクロ】別ファイルへマクロ...
-
【関数】同じ関数なのに、エラ...
-
Amazonでマイクロソフトオフィ...
-
ページが変なふうに切れる
おすすめ情報