[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

電子書籍の厳選無料作品が豊富!

以下のマクロを画像に登録してボタンとしています
マクロ内容は以下です
・別ファイルに、モジュール(マクロ)を登録
・別ファイルに画像を作成
・作成した画像にマクロを登録

これを2回目実行すると、画像の上にさらに画像ができ
また、マクロは登録されません

1回登録したら、次から実行できないようにできますでしょうか???
別ファイル(1ファイル)に1回までしか実行できないようにしたいです

アドバイス、コード分かる方は教えて下さい

なお、別ファイルは1日ごとに変わります
なので、次の日にはまた、初めて
新しく上記マクロを実行し、画像にマクロを登録します


【コード】
Sub macro_import()


'鏡ブックへマクロコードをimport


Dim filepath1 As String

Dim wb1 As Workbook

Dim ws1 As Worksheet


filepath1 = ThisWorkbook.Worksheets("Sheet1").Cells(7, 1)

Set wb1 = Workbooks.Open(filepath1)

Set ws1 = wb1.Worksheets("Sheet1")


Const filepath As String = "C:\Users\2020\OneDrive\マクロ\マクロファイル\"


With wb1.VBProject.VBComponents

.Import filepath & "delete.bas"


End With

Call sample

End Sub

Sub sample()

Dim filepath1 As String

Dim wb1 As Workbook

Dim ws1 As Worksheet


filepath1 = ThisWorkbook.Worksheets("Sheet1").Cells(141, 1)

Set wb1 = Workbooks.Open(filepath1)

Set ws1 = wb1.Worksheets("Sheet1")




With ws1.Shapes.AddShape(msoShapeRectangle, 120, 60, 120, 60)

.Fill.ForeColor.RGB = RGB(220, 220, 220)

.Line.ForeColor.RGB = RGB(220, 220, 220)

.Name = "あいう"

With .TextFrame.Characters
.Text = "不要行削除"
.Font.Size = 16


End With

.Top = Range("f1").Top

.Left = Range("f1").Left

End With

ws1.Shapes("あいう"). 'プローシージャ名を記述

End Sub

A 回答 (3件)

call sample


でサンプルを呼び出す部分を
以下のようにおきかえてみては。


' "あいう" シェイプの存在確認
Dim shp As Shape
Dim exists As Boolean
exists = False
For Each shp In ws1.Shapes
If shp.Name = "あいう" Then
exists = True
Exit For
End If
Next shp

' 存在しない場合のみ sample を実行
If Not exists Then
Call sample
End If
    • good
    • 0
この回答へのお礼

うまくできました。ありがとうございます
マクロ事態は、名前を変えて、どんどん、インポートされて
しまいますが

図形と図形にマクロを登録は、進みません
ので、結果、1回しかい、図形が作成されないので

不具合なしです
ご指導、ありがとうございます

.Import filepath & "delete.bas"
⇒1delete.bas
⇒2delete.bas

お礼日時:2025/02/19 07:14

成功したらBookのBuiltinDocumentPropertiesに書き込めば?


適当なBookを開いて(XLSXでもXLSMでも可)
イミディエイトウィンドウに
thisworkbook.BuiltinDocumentProperties("comments")="二度漬け禁止"
と入力しEnter。
ファイルを上書き保存して[ファイル]のプロパティを見ると
(プロパティをすべて表示)でコメントに「二度漬け禁止」となっているハズ。
変更も参照も出来るのでどうでしょね?
    • good
    • 0

先の回答の一部を以下に置き換えて、


If exists Then
Exit Sub
End If
Constより前に入れるといいかも。

“あいう”がなければ、マクロが終了します。
    • good
    • 0

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

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


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