Excel VBA質問箱 IV

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

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


13477 / 13644 ツリー ←次へ | 前へ→

【5130】ユーザーフォームから楕円を挿入したい。 さる 03/4/23(水) 10:27 質問
【5135】Re:ユーザーフォームから楕円を挿入したい。 ichinose 03/4/23(水) 12:25 回答
【5184】Re:ユーザーフォームから楕円を挿入したい。 さる 03/4/24(木) 15:29 お礼
【5228】楕円とユーザーフォーム さる 03/4/29(火) 10:27 質問
【5229】Re:楕円とユーザーフォーム ichinose 03/4/29(火) 11:11 発言
【5230】Re:楕円とユーザーフォーム さる 03/4/29(火) 12:23 お礼

【5130】ユーザーフォームから楕円を挿入したい。
質問  さる E-MAIL  - 03/4/23(水) 10:27 -

引用なし
パスワード
   userformにcheckbox1〜3とcommandbutton1があります。
checkbox1〜3をonにしてcommandbutton1をクリックすると、
onになっているcheckbox1〜3に対応した楕円(3種類)を作成。
既にsheet上に楕円が作成されている場合、userformを表示したときに楕円に対応したcheckboxをonにしたいのですが、楕円が有るか無いかの判定の仕方がわかりません。

要するに、
commandbutton1をクリックしたとき、
checkbox1がonなら楕円1を作成。
checkbox2がonなら楕円2を作成。
checkbox3がonなら楕円3を作成。

userformを表示したとき、
楕円1が作成されている場合、checkbox1をonにする。
楕円2が作成されている場合、checkbox2をonにする。
楕円3が作成されている場合、checkbox3をonにする。
ということです。

どなたかご教授お願いします。

【5135】Re:ユーザーフォームから楕円を挿入したい...
回答  ichinose  - 03/4/23(水) 12:25 -

引用なし
パスワード
   ▼さる さん:
>userformにcheckbox1〜3とcommandbutton1があります。
>checkbox1〜3をonにしてcommandbutton1をクリックすると、
>onになっているcheckbox1〜3に対応した楕円(3種類)を作成。
>既にsheet上に楕円が作成されている場合、userformを表示したときに楕円に対応したcheckboxをonにしたいのですが、楕円が有るか無いかの判定の仕方がわかりません。
>
>要するに、
>commandbutton1をクリックしたとき、
>checkbox1がonなら楕円1を作成。
>checkbox2がonなら楕円2を作成。
>checkbox3がonなら楕円3を作成。
>
>userformを表示したとき、
>楕円1が作成されている場合、checkbox1をonにする。
>楕円2が作成されている場合、checkbox2をonにする。
>楕円3が作成されている場合、checkbox3をonにする。
>ということです。
>
>どなたかご教授お願いします。
こんにちは。
こんなふうにでは どうでしょうか?
'=====================================
Sub test()
  For Each shp In ActiveSheet.Shapes
    If shp.AutoShapeType = msoShapeOval Then
     MsgBox shp.Name & "楕円"
     End If
    Next
End Sub

【5184】Re:ユーザーフォームから楕円を挿入したい...
お礼  さる E-MAIL  - 03/4/24(木) 15:29 -

引用なし
パスワード
   ▼ichinose さん:
はじめまして。
ありがとうございます。
教えていただいたコードを自分なりにいじってやってみようと思います。
また行き詰まったら質問させていただきますので、
そのときはよろしくお願いします。

【5228】楕円とユーザーフォーム
質問  さる E-MAIL  - 03/4/29(火) 10:27 -

引用なし
パスワード
   userformを表示したときに、sheet上に楕円がある場合、
userformのcheckboxにチェックを入れたいのですが、
うまくいきません。

コードは、
Sub フォーム表示()

For Each shp In ActiveSheet.Shapes
 If shp.AutoShapeType=msoShapeOval Then
  If Shape.Name="Oval 1" Then
   UserForm1.CheckBox1=True
  ElseIf Shape.Name="Oval 2" Then
   UserForm1.CheckBox2=True
  ElseIf Shape.Name="Oval 3" Then
   UserForm1.CheckBox3=True
  ElseIf Shape.Name="Oval 4" Then
   UserForm1.CheckBox4=True
  ElseIf Shape.Name="Oval 5" Then
   UserForm1.CheckBox5=True
  End If
 End If
Next

UserForm1.Show

End Sub
です。
これを実行すると、『オブジェクトが必要です。』というエラーになってしまいます。

どなたかご教授お願いします。

【5229】Re:楕円とユーザーフォーム
発言  ichinose  - 03/4/29(火) 11:11 -

引用なし
パスワード
   ▼さる さん:
こんにちは。

>userformを表示したときに、sheet上に楕円がある場合、
>userformのcheckboxにチェックを入れたいのですが、
>うまくいきません。
>
>コードは、
>Sub フォーム表示()
>
>For Each shp In ActiveSheet.Shapes
> If shp.AutoShapeType=msoShapeOval Then
>  If Shape.Name="Oval 1" Then
'    ↑shp.name だと思います 、下の行も・・・
>   UserForm1.CheckBox1=True
>  ElseIf Shape.Name="Oval 2" Then
>   UserForm1.CheckBox2=True
>  ElseIf Shape.Name="Oval 3" Then
>   UserForm1.CheckBox3=True
>  ElseIf Shape.Name="Oval 4" Then
>   UserForm1.CheckBox4=True
>  ElseIf Shape.Name="Oval 5" Then
>   UserForm1.CheckBox5=True
>  End If
> End If
>Next
>
>UserForm1.Show
>
>End Sub
>です。
>これを実行すると、『オブジェクトが必要です。』というエラーになってしまいます。

次回は、このエラーがどの行で発生してプログラムがストップしたかも教えてくださいね。コードが複雑になった場合、詳細な情報があったほうが解決も速いと思いますよ。

【5230】Re:楕円とユーザーフォーム
お礼  さる E-MAIL  - 03/4/29(火) 12:23 -

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

>  If Shape.Name="Oval 1" Then
>    ↑shp.name だと思います 、下の行も・・・

その通りでした。shp.nameに変えたらうまくいきました。

>次回は、このエラーがどの行で発生してプログラムがストップしたかも教えてくださいね。コードが複雑になった場合、詳細な情報があったほうが解決も速いと思いますよ。

ご指導ありがとうございます。その通りですね、次回からはそのようにします。

ありがとうございました。

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