【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?

マクロを実行する度(ショートカットキーを設定しています)、
VBEが起動されるのですが、
これを失くす方法を教えて下さい。
閉じる作業が面倒で困っています。
VBA自体は単純なもので、正常に動作しています。
下記の記述だけです。

  Application.Goto Reference:="画像リサイズ"
On Error Resume Next
Selection.Width = Selection.TopLeftCell.Width
Selection.Height = Selection.TopLeftCell.Height

A 回答 (2件)

こんばんは。



申し訳ないのですが、こちらが知りたいことは書かれていないようですので、こちらの想像で書かせていただきます。確認バージョンは、2003までです。

画像は、Webなどからクリップボードに入れて、Excelのワークシートに、貼り付けているように思えます。「画像リサイズ」とは、名前登録なのだと思いました。

他にも書かれているのか、そのコードが全てなのかは分かりませんが、ただ、私が言えるのは、実際、そのようなコードは、VBAを書く立場からすると、ありえないなって思うだけです。偶然が、そのコードを可能にしているのだろうとは思います。


Sub test1()
'見本セルサイズにそろえ、その「見本セルサイズ」に、画像の左上端が掛かっている場合
Dim pct As Object
Dim rng As Range
Set rng = Range("画像リサイズ")
For Each pct In ActiveSheet.Pictures
  If Not Intersect(rng, pct.TopLeftCell) Is Nothing Then
   pct.Width = pct.TopLeftCell.Width
   pct.Height = pct.TopLeftCell.Height
  End If
Next pct
Set rng = Nothing
End Sub


Sub test2()
'見本セルサイズにそろえ、その「見本セルサイズ」に、画像の左上端が掛かっていない場合
Dim pct As Object
Dim rng As Range
Set rng = Range("画像リサイズ")
For Each pct In ActiveSheet.Pictures
   pct.Width = rng.Width
   pct.Height = rng.Height
Next pct
Set rng = Nothing
End Sub
    • good
    • 0

こんばんは。



>マクロを実行するたびにVBEが起動

>VBA自体は単純なもので、正常に動作しています。

マクロは、エラーが出ていないとしても、ざっとみた感じでは、コードは仕事を果たさずに素通りしているような気がします。言葉で説明していただかないと、マクロの意味が分からないですね。

"画像リサイズ" というのは、オブジェクトを指しますね。
まず、Goto で出来ますか?その下のセルではないでしょうか?

しかし、Selection.TopLeftCell とはあっても、もし図形ではないとすると、TopLeftCell というプロパティはないように思います。それで問題がないとするなら、バージョンが違ったら出来るようになるのでしょうか?コードが、さっぱり読めないです。

この回答への補足

ご回答ありがとうございます。

エクセルで、特定のセルに写真画像を取り込む際、
そのセルの大きさに合わせて画像を取り込みたく、
こういったマクロを書いています。

マクロを実行すると、
写真はセルの大きさにピッタリ変わるので
動作的には不満はないのです。

ただその度にVBEが起動するので閉じる作業が大変です。
何が間違ってるか、またどうすればよいか
お解りでしたら教えて下さいm(_ _)m

マクロ初心者のため詳しいことは説明できないかもしれません。。。

補足日時:2007/06/29 15:13
    • good
    • 0

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