思い出すきっかけは 音楽?におい?景色?

以下のコードは、モジュール名が 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件)

こんにちは



>当該マクロを、もう少し簡略化する事はできますか?
>ご存じの方、教えて下さい
通常なら、共通部分をまとめて処理できるような構造にすると思います。
すでに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は保存せずにインポートを残さないのなら、毎回読み込んでもよいですけれど、読み込み時間の無駄にも思えます。
また、ご提示のプロシージャをブック等で配布するのなら、そのブックに先にモジュールを読み込んでおけば、ご提示のプロシージャは不要のようにも思えます。
    • good
    • 1
この回答へのお礼

以下は、変数だと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"

お礼日時:2025/01/29 23:40

対象ファイルの置き場所が決まってるなら、



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"
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A