Excel VBA質問箱 IV

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

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


2081 / 13645 ツリー ←次へ | 前へ→

【70103】EXECL2007でのオートシェイプ じょにー 11/10/15(土) 15:12 質問[未読]
【70106】Re:EXECL2007でのオートシェイプ UO3 11/10/15(土) 18:59 発言[未読]
【70112】Re:EXECL2007でのオートシェイプ じょにー 11/10/16(日) 3:44 質問[未読]
【70113】Re:EXECL2007でのオートシェイプ UO3 11/10/16(日) 6:51 回答[未読]
【70116】Re:EXECL2007でのオートシェイプ じょにー 11/10/16(日) 8:02 お礼[未読]
【70117】Re:EXECL2007でのオートシェイプ UO3 11/10/16(日) 12:23 回答[未読]
【70118】Re:EXECL2007でのオートシェイプ じょにー 11/10/16(日) 12:46 お礼[未読]
【70108】Re:EXECL2007でのオートシェイプ UO3 11/10/15(土) 19:13 発言[未読]

【70103】EXECL2007でのオートシェイプ
質問  じょにー E-MAIL  - 11/10/15(土) 15:12 -

引用なし
パスワード
   EXECL2007で、マクロの記録でオートシェイプの追加や、書式の変更を行っても、何も記載されていません。他の操作はちゃんと記録が撮れているのに、何ででしょうか?200,2002のEXECLでは、ちゃんと撮れていたのに、2007では無理なのでしょうか?

【70106】Re:EXECL2007でのオートシェイプ
発言  UO3  - 11/10/15(土) 18:59 -

引用なし
パスワード
   ▼じょにー さん:

>EXECL2007で、マクロの記録でオートシェイプの追加や、書式の変更を行っても、何も記載されていません。他の操作はちゃんと記録が撮れているのに、何ででしょうか?200,2002のEXECLでは、ちゃんと撮れていたのに、2007では無理なのでしょうか?

こんにちは。はい。残念ながら。
図形関係ののマクロ記録ができないことをはじめ、2007は、リリース時期に開発が間に合わなかったものがあって
見切り発車されていますね。

2010では、図形関係のマクロ記録を含めてかなり改善されていますが。

【70108】Re:EXECL2007でのオートシェイプ
発言  UO3  - 11/10/15(土) 19:13 -

引用なし
パスワード
   ▼じょにー さん:

追伸です。

私も以前はxl2007をもっていましたが(しかもOSがVista、最悪の組合せ)
幸か不幸か、PCを壊してしまって買い換えましたので、いまは手元になく
以前、あれができない、これができないとぶぅぶぅいっていたことも忘却の彼方?

ネットで Excel2007 不具合 とか Excel2007 不具合一覧 といれて検索しますと
情報がたくさんでてきます。

ご参考まで。

【70112】Re:EXECL2007でのオートシェイプ
質問  じょにー E-MAIL  - 11/10/16(日) 3:44 -

引用なし
パスワード
   UO3様、ご解説ありがとうございます。そうですか〜記録が撮れないなら、どう言った記述をすればいいのか、まったく解りませんねぇ。どなたか、EXECL2007で、ダブルクリックした場所に、塗りつぶし無で線色が黒で太さが.025ptの2重丸(ドーナッツ)及び、同じスタイルの円/楕円を記述を教えてもらえないでしょうか?

【70113】Re:EXECL2007でのオートシェイプ
回答  UO3  - 11/10/16(日) 6:51 -

引用なし
パスワード
   ▼じょにー さん:

おはようございます

2010で記録すると以下のようになります。これは2003でも同じです。
配置する場所は適当です。また、「円」も「楕円」もシェープとしては「楕円」です。
設定する幅、高さの比率を1:1にすると「円」になります。

Sub Macro1()
'
' Macro1 Macro
'

'
  ActiveSheet.Shapes.AddShape(msoShapeOval, 240.75, 150.75, 72, 72).Select
  Selection.ShapeRange.Fill.Visible = msoFalse
  With Selection.ShapeRange.Line
    .Visible = msoTrue
    .Weight = 0.25
  End With
End Sub

なお、「ドーナッツ」は、msoShapeOvalのところをmsoShapeDonutにします。
240.75, 150.75, 72, 72 これは挿入する図形の左横位置、上辺位置、幅、高さのポイント値です。

で、ダブルクリックした時に、その場所にということですとシートモジュールのイベントを
使うことになると思いますね。そのあたりはご存じかもしれませんが、参考コードとして以下。

これらを組み合わせるとお望みのコードができますね。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  Cancel = True
  MsgBox "ダブルクリックされたセルは" & Target.Address & "です" & vbLf & _
    "そのセルの左横位置、上辺位置、幅、高さは以下の通りです。" & vbLf & _
    Target.Left & "/" & Target.Top & "/" & Target.Width & "/" & Target.Height
End Sub

【70116】Re:EXECL2007でのオートシェイプ
お礼  じょにー E-MAIL  - 11/10/16(日) 8:02 -

引用なし
パスワード
   UO3様ありがとうございます。ご提示いただいたコードで無事EXECL2007で丸を描く事が出来ました、線色が、少し青色ぽいのですが、これを黒色にするのはどうすればよいのでしょうか?
ActiveSheet.Shapes.AddShape(msoShapeOval, 240.75, 150.75, 72, 72).Select
のmsoShapeOvalL.T,W.H,72,72←の最後の72,72は何の数値でしょうか?お礼を言いつつまた、質問してすみません。

【70117】Re:EXECL2007でのオートシェイプ
回答  UO3  - 11/10/16(日) 12:23 -

引用なし
パスワード
   ▼じょにー さん:
>線色が、少し青色ぽいのですが、これを黒色にするのはどうすればよいのでしょうか?

2003と2010では生成されるコードが少し異なります。
2007は2010と同じだと思いますが、一方、2003コードは2007,2010でもOK。
2010コードは2003ではエラーになりますので、2003コードを使っておく方が無難かもしれません。

(2003)
  With Selection.ShapeRange.Line
    .ForeColor.SchemeColor = 8
  End With
(2010)
  With Selection.ShapeRange.Line
      .ForeColor.ObjectThemeColor = msoThemeColorText1
  End With

>ActiveSheet.Shapes.AddShape(msoShapeOval, 240.75, 150.75, 72, 72).Select
>のmsoShapeOvalL.T,W.H,72,72←の最後の72,72は何の数値でしょうか?

前レスで申し上げましたとおり、図形の幅、高さ(ポイント値)です。

【70118】Re:EXECL2007でのオートシェイプ
お礼  じょにー E-MAIL  - 11/10/16(日) 12:46 -

引用なし
パスワード
   UO3様いつも、丁寧なご解説、本当にありがとうございます。おかげでEXECL2007で、無事に黒色の図形を描く事ができました。

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