
以下のマクロを画像に登録してボタンとしています
マクロ内容は以下です
・別ファイルに、モジュール(マクロ)を登録
・別ファイルに画像を作成
・作成した画像にマクロを登録
これを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("あいう").OnAction = "delete1" 'プローシージャ名を記述
End Sub
No.1ベストアンサー
- 回答日時:
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
うまくできました。ありがとうございます
マクロ事態は、名前を変えて、どんどん、インポートされて
しまいますが
図形と図形にマクロを登録は、進みません
ので、結果、1回しかい、図形が作成されないので
不具合なしです
ご指導、ありがとうございます
.Import filepath & "delete.bas"
⇒1delete.bas
⇒2delete.bas
No.3
- 回答日時:
成功したらBookのBuiltinDocumentPropertiesに書き込めば?
適当なBookを開いて(XLSXでもXLSMでも可)
イミディエイトウィンドウに
thisworkbook.BuiltinDocumentProperties("comments")="二度漬け禁止"
と入力しEnter。
ファイルを上書き保存して[ファイル]のプロパティを見ると
(プロパティをすべて表示)でコメントに「二度漬け禁止」となっているハズ。
変更も参照も出来るのでどうでしょね?
No.2
- 回答日時:
先の回答の一部を以下に置き換えて、
If exists Then
Exit Sub
End If
Constより前に入れるといいかも。
“あいう”がなければ、マクロが終了します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【マクロ】コードを少しでも、減らする為には
Excel(エクセル)
-
【マクロ】関数の入力にてエラーがでます
Excel(エクセル)
-
ユーザーマクロ作成
Excel(エクセル)
-
-
4
Excelでの文字入力について
Excel(エクセル)
-
5
勤務外時間を出す表が作りたい
Excel(エクセル)
-
6
役所でもらった書類をエクセル化するには? 役所に申請する用紙があります。A4で表になっていて枠内に文
その他(Microsoft Office)
-
7
質問58753 このコードでうまく動作しません。どうしたら良いですか Private Sub Wor
Visual Basic(VBA)
-
8
Excelで〇のついたものを抽出したい
その他(Microsoft Office)
-
9
Excel いい方法教えてください。
Excel(エクセル)
-
10
Excelについて教えてください。
Excel(エクセル)
-
11
【マクロ】宣言は、何のためにするんですか???しなくても、普通に動いしまうのはなぜ?
Excel(エクセル)
-
12
【関数】同じ関数なのに、エラーが出るエクセルと出ないエクセルある?
Excel(エクセル)
-
13
【マクロ】変数に入れるコードを少しでも短くする為には?
Excel(エクセル)
-
14
別のシートの指定列の最終行を返す関数の式を教えて下さい。
Excel(エクセル)
-
15
Excelに貼ったXのURLのリンクをクリックするとエラーメッセージが表示される原因と対処について
Excel(エクセル)
-
16
VBA_日時のソート
Excel(エクセル)
-
17
エクセルで、一部のセルだけ固定し そのセルがある行・列で挿入をしても、その固定したセルだけは動かない
Excel(エクセル)
-
18
エクセルについて教えてください
Excel(エクセル)
-
19
【マクロ】A列にある、日付(本日:4月17日)を検索し、セルを選択するには?
Excel(エクセル)
-
20
【関数】=EXACT(a1,b1) a1とb1が空白の場合trueではなく、空白を返すには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VLOOKUP FALSEのこと
-
【関数】【マクロ】売上X円以上...
-
エクセルシートの見出しの文字...
-
【マクロ 画像あり】Exact関数...
-
空白処理を空白に
-
同じ名前(重複)かつ 日本 ア...
-
excel
-
if関数の複数条件について
-
エクセルでフィルターした値を...
-
空白のはずがSUBTOTAL関数でカ...
-
【マクロ】エラー【#DIV/0!】が...
-
【マクロ】数式を入力したい。...
-
【関数】3つのセルの中で最新...
-
Excelで4択問題を作成したい
-
エクセルの文字数列関数と競馬...
-
オートフィルターの絞込みをし...
-
表計算ソフトでの様式の呼称
-
【画像あり】【関数】指定した...
-
エクセルに写真が貼れない(フ...
-
【関数】=EXACT(a1,b1) a1とb1...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでフィルターした値を...
-
if関数の複数条件について
-
エクセルシートの見出しの文字...
-
excel
-
エクセルの文字数列関数と競馬...
-
VLOOKUP FALSEのこと
-
同じ名前(重複)かつ 日本 ア...
-
表計算ソフトでの様式の呼称
-
エクセルに写真が貼れない(フ...
-
【マクロ】数式を入力したい。...
-
【マクロ】実行時エラー '424':...
-
【画像あり】オートフィルター...
-
Office2021のエクセルで米国株...
-
【画像あり】【関数】指定した...
-
エクセルのVBAで集計をしたい
-
【マクロ】【画像あり】4つの...
-
【関数】3つのセルの中で最新...
-
【マクロ】excelファイルを開く...
-
LibreOffice Clalc(またはエク...
-
エクセルのライセンスが分かり...
おすすめ情報