マクロ 初心者です。
ワークシート指定して、ダブルクリック等を使っての画像選択、貼り付け&セルの大きさに合わせる)ことはできるのですが、
ダブルクリック等ではなく、手動でマクロを実行して指定のセル(B37)に貼り付けることはできるでしょうか?(セルの大きさに画像が変換するのは生かしたまま)
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)を
sub マクロ名()にして、Moduleに貼り付けて実行したら
myAD2 = Target.Address
上記場所でエラーになってしまいます。
どのように変更したら、できるでしょうか?または、できる手段はないのでしょうか?
ご教授お願いします。
使用ベースマクロは以下です。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
'===============画像選択
myF = Application.GetOpenFilename _
("jpg bmp tif png gif,*.jpg;*.bmp;*.tif;*.png;*.gif", , "画像の選択", , False)
If myF = False Then
MsgBox "画像を選択してください(終了)"
Exit Sub
End If
'===============画像の掃除
For Each mySP In ActiveSheet.Shapes
myAD1 = mySP.TopLeftCell.MergeArea.Address
myAD2 = Target.Address
If myAD1 = myAD2 Then mySP.Delete
Next
'===============画像の貼り付け
Set mySP = ActiveSheet.Pictures.Insert(myF)
'===============タテヨコの縮尺を保持
myHH = Target.Height / mySP.Height
myWW = Target.Width / mySP.Width
If myHH > myWW Then
mySP.Height = mySP.Height * myWW
mySP.Width = Target.Width
Else
mySP.Height = Target.Height
mySP.Width = mySP.Width * myHH
End If
'===============中央へ調整
myHH2 = (Target.Height / 2) - (mySP.Height / 2)
myWW2 = (Target.Width / 2) - (mySP.Width / 2)
mySP.Top = Target.Top + myHH2
mySP.Left = Target.Left + myWW2
Set mySP = Nothing
End Sub
No.2ベストアンサー
- 回答日時:
やり方は色々ありますが、一番簡単なのはTargetにセルを設定すれば良いです。
sub マクロ名()
Set Target = Range("B37")
===============画像選択
myF = Application.GetOpenFilename _
:
ご確認ください。
No.1
- 回答日時:
Target.Address,
Target.Width
などのTargetのセルはイベントの場合はシステムから渡してくれていたのだが、
それを使わないなら、自分でセットしないとならない。
クリックしたセルの番地等を知りたいなら、またイベントのお世話になる
ことになりSubにした意味が少なくなる。
横に2列で、縦に5列の写真を位置づけるような場合は
自分でその十個のセルを順次指定するようにプログラムを
組まないとならない。
どういう構成にしようとしているのか、1つなのか
書いてなくて答えようがない。
まだ質問者には難しすぎる課題かなと思う。
特定のセルの大きさ(この場合はB37のみの1セル)にあわせて画像を貼り付ける作業をしたかったのです。
私が、自分で記録させる程度でしかマクロ使えない知識なので、難しそうですね。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) Excel2019 マクロを使用し画像を貼り付けした際のリンク切れについて 2 2022/11/15 16:14
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- Visual Basic(VBA) Excelにて、シート1の行を削除するとシート2のシート1と同じ番号の行も削除したい 3 2022/05/08 04:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルファイルを値でのみし...
-
セルに入力するたびにマクロを...
-
エクセル連番自動印刷について
-
ブックの共有でVBAエラー
-
エクセル マクロ写真帳に一括で...
-
VBA Shapes コピーと名前
-
【ExcelVBA】マクロブックを通...
-
エクセルVBAで納期管理システム...
-
エクセルファイルの回数期限の...
-
【Excel】マクロでページを追加...
-
Excelでマクロ実行中に画面を固...
-
再度,ExcelVBA,public変数が消える
-
グラフ要素のセルを参照したい...
-
EXCEL上にコマンドボタン...
-
worksheet_changeの一時無効化
-
エクセルに写真を挿入するマ...
-
ExcelのVBAコードについて教え...
-
エクセル 図形の寸法を取得したい
-
エクセルのバージョンアップに...
-
VBAで行コピーして挿入
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelでマクロ実行中に画面を固...
-
エクセルファイルを値でのみし...
-
エクセル連番自動印刷について
-
【Excel】マクロでページを追加...
-
VBA Shapes コピーと名前
-
エクセル マクロ写真帳に一括で...
-
セルに入力するたびにマクロを...
-
エクセルVBAで納期管理システム...
-
EXCEL VBA 他のアプリケーショ...
-
エクセル 図形の寸法を取得したい
-
VBAで行コピーして挿入
-
EXCEL 行番号や列番号が選択で...
-
ブックの共有でVBAエラー
-
エクセルのマクロについて教え...
-
【ExcelVBA】マクロブックを通...
-
エクセルファイルの回数期限の...
-
VB.NETによるEXCELの行挿入
-
グラフ要素のセルを参照したい...
-
VBAの記述について 値のみの貼...
-
再度,ExcelVBA,public変数が消える
おすすめ情報