- ベストアンサー
VBA オートシェイプについて
画像(マスコット)をクリックすると コメント(オートシェイプ)が出現する! ↑ そんな事は出来るのでしょうか? 例えば、フォームを使ったら簡単なのですが・・ 楕円形でいかにもしゃべっている感じにしたいのですが・・ 是非、教えて下さい! お願いします
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
質問者の意図どおりかどうか、判りにくいが Sheet1において、表示ーツールバーーコントロールツールボックスーイメージ でImageコントロールを1つ貼り付ける。 マクロの記録では(例) Sub Macro2() ActiveSheet.OLEObjects.Add(ClassType:="Forms.Image.1", Link:=False, _ DisplayAsIcon:=False, Left:=291.75, Top:=204, Width:=90, Height:=55.5 _ ).Select End Sub そして Pictureに画像を設定する。 ーー そして オートシェイプー噴出しー適当な種類を選択 マクロの記録を少し修正した例例 Sub Macro1() l = Worksheets("Sheet1").Image1.Left + Worksheets("Sheet1").Image1.Width t = Worksheets("Sheet1").Image1.Top h = Worksheets("Sheet1").Image1.Height ActiveSheet.Shapes.AddShape(msoShapeRectangularCallout, l, t, 100, _ h - 20).Select Selection.Characters.Text = "彼氏の写真" End Sub ーー そしてImage1のクリックイベントに Private Sub Image1_Click() s = Worksheets("Sheet1").Shapes(3).Name If Worksheets("Sheet1").Shapes(s).Visible = False Then Worksheets("Sheet1").Shapes(s).Visible = True Else Worksheets("Sheet1").Shapes(s).Visible = False End If End Sub Shapes(3).の3は適宜自分の場合に合わせること。 ーー 以上でSheet1上のImage1をクリックすると、吹き出しが現れたり、消えたり交互に繰り返す。
その他の回答 (3)
- xls88
- ベストアンサー率56% (669/1189)
コードの全文を載せていただくと良かったのですが、 If文は下記のような構造になっていますか? If・・・Then '処理 Else '処理 End If VBAの基本操作(制御構造) http://orakumiko.hp.infoseek.co.jp/vbamanu/chapter2.html
お礼
ありがとうございました! 解決できました!
- xls88
- ベストアンサー率56% (669/1189)
>回答番号:No.1 この回答への補足 試されたコードを拝見できないでしょうか。 全文掲載してください。
補足
Activesheet.Shapes("セリフ1").Visible = False Else←のIFがないと!エラーが表示されます! どうしてでしょうか? すいません。
- xls88
- ベストアンサー率56% (669/1189)
円形吹き出しを描画し、名前を付ける(例:セリフ1) マクロで、円形吹き出し(セリフ1)を、表示/非表示する例 If Activesheet.Shapes("セリフ1").Visible = False Then '非表示 Activesheet.Shapes("セリフ1").Visible = False Else '表示 Activesheet.Shapes("セリフ1").Visible = True End If 上記のようなマクロを、画像(マスコット)に「マクロの登録」する。 ざっと以上のような事で、画像(マスコット)をクリックする度に、図形(セリフ1)が表示/非表示されるように出来ます。
補足
早速の回答ありがとうございます。 すいません!初心者です! どうしてもエラー表示になってしまいます! もう少し詳しくお願いします!
お礼
ありがとうございます! 上手く出来ました!
補足
ありがとうございます! Shapes(3).の3は適宜自分の場合に合わせること。 ↑ これはどういう意味なのでしょうか?すいません 教えて下さい! ちなみにこれはエラー表示になってしまいます。