Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


32032 / 76734 ←次へ | 前へ→

【49941】Re:マクロ式の簡略化
質問  yayo  - 07/6/29(金) 16:05 -

引用なし
パスワード
   ▼bykin さん:

早速教えていただき、ありがとうございました。
Application.Callerを使うと、
1個のプロシージャで全てまかなえ、
とてもすっきりしたコードになりました。
感激しました。ありがとうございました。

ただ、ボタンの名前を数字のみにした場合、
一つ目以降の数値を見に行くように、
With Cells((Val(Mid$(Application.Caller, 1)) - 1) * 13 + 2, 2)
とすると、デバックとなります。
これは、どうしてでしょうか。

また、ボタンを使わず、
任意のセルをダブルクリックすると、
その右隣のセルに画像を挿入することは可能でしょうか。

たとえば、b1のセルをダブルクリックすると、
b2のセルに、自動的に縮小された画像を挿入したいのです。
この場合の、セル位置の指定方法が分かりません。

もし、この方法が可能なら、
後から入れ忘れた画像を挿入する場合も、
セルをコピーすれば、行位置が変わっても、
そのままコードを利用できるのでは・・と思うのですがいかがでしょうか。
たびたび申し訳ありませんが、どうぞ宜しくお願いいたします。


>こんばんわ。
>
>何か最近似たようなご質問が多いけど・・・(^^;;
>こういうときにこそApplication.Callerを使うんです。
>
>【1】準備
>
>各ボタンの名前を次のように変更しておきます。
>2行目のボタン:ボタン 1
>15行目のボタン:ボタン 2
>28行目のボタン:ボタン 3
>  ・
>  ・
>262行目のボタン:ボタン 21
>
>※上記例は一応デフォルトの名前に合わせてあります。
>
>【2】マクロコード(標準モジュール)
>
>Public Sub InsertPicture()
>  Dim fName As Variant
>  Dim PicTop As Single
>  Dim PicLeft As Single
>
>  fName = Application.GetOpenFilename _
>      ("画像ファイル,*.gif;*.jpg;*.bmp", 1, "画像挿入")
>
>  If fName = False Then
>    Exit Sub
>  End If
>  
>  Application.ScreenUpdating = False
>
>  '↓クリックしたボタンの名前の5文字目以降の数値を取り出して
>  '↓挿入位置を計算している
>  With Cells((Val(Mid$(Application.Caller, 5)) - 1) * 13 + 2, 2)
>    PicTop = .Top
>    PicLeft = .Left
>  End With
>  
>  With ActiveSheet.Pictures.Insert(fName)
>    .Top = PicTop
>    .Left = PicLeft
>    .Height = 234#
>    .Width = 312#
>  End With
>  Application.ScreenUpdating = True
>End Sub
>
>【3】該当ボタン全部を選択して上記マクロを登録します。
>
>こうすれば、1個のプロシージャで全てまかなえます。
>
>※変数はDimでちゃんと宣言してから使うことをお勧めします。
>
>試してみてな。
>ほな。

5 hits

【49926】マクロ式の簡略化 yayo 07/6/28(木) 18:22 質問
【49936】Re:マクロ式の簡略化 bykin 07/6/28(木) 23:16 回答
【49941】Re:マクロ式の簡略化 yayo 07/6/29(金) 16:05 質問
【49942】Re:マクロ式の簡略化 Jaka 07/6/29(金) 17:29 発言
【49944】Re:マクロ式の簡略化 bykin 07/6/29(金) 21:55 回答
【50001】Re:マクロ式の簡略化 yayo 07/7/3(火) 10:35 お礼

32032 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free