- ベストアンサー
エクセルのvbaプログラムを教えてください。
ユーザーフォームに2つのオプションボタンがあります。 また、シート上には4つの図形があります。 オプションボタンの片方にチェックをいれコマンドボタンを押すと、シート上にある図形1と図形2を非表示にし、図形3と図形4を表示します。逆のほうをチャックしていた場合には、図形1と図形2を表示、図形3と図形4を非表示にするプログラムを教えていただけませんか? また、ユーザーフォーム上に簡単な図形(三角形)を表示させるにはどうすればよいでしょうか?
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
シート上でしたね、失礼いたしました。 Private Sub OptionButton1_Click() Worksheets("Sheet1").Image1.Visible = True Worksheets("Sheet1").Image2.Visible = True Worksheets("Sheet1").Image3.Visible = False Worksheets("Sheet1").Image4.Visible = False End Sub Private Sub OptionButton2_Click() Worksheets("Sheet1").Image1.Visible = False Worksheets("Sheet1").Image2.Visible = False Worksheets("Sheet1").Image3.Visible = True Worksheets("Sheet1").Image4.Visible = True End Sub ではでは。
その他の回答 (7)
- tinu 2000(@tinu2000)
- ベストアンサー率40% (147/366)
No.1,2,7です。 > 画像が完全に固定されてしまって・・・・ それはデザインモードになっていないからです。 コントロールツールボックスの中の「青い三角とペン」のボタンをクリックして凹んだ状態にすると、デザインモードになります。 > イメージ枠の中に入れた画像は少し汚くなってしまいます。 元の画像と汚くなった画像を見ないとなんとも言えませんが、 画像ソフトで作った元の画像の大きさを変えたらどうなる、 画像の形式がbmpだったらどうなる、jpgだったらどうなる、gifだったらどうなる、 試されましたか? 汚なくなる原因はこの辺りかも。 ではでは
- tinu 2000(@tinu2000)
- ベストアンサー率40% (147/366)
No.1です。 補足に対してです。 > 画像ソフトで作りました。 この図をImage1に表示させる方法です。 (1)エクセルを立ち上げて、シートが表示されている状態で、 (2)表示→ツールバー→コントロールツールボックス (3)コントロールツールボックスの中のイメージ(山と月?の絵)をクリック (4)シート上の任意の場所でクリック→四角い枠が現れる これがImage1です。小さな四角をドラッグすると大きさが変わります、枠の中でクリックしてドラッグしたら位置が変わります。 (5)四角い枠の上で右クリック→プロパティを選択 (6)プロパティの中のPictureの右側の(なし)の枠をクリック (7)四角の中に・・・が現れる。この四角をクリック (8)作った図を指定する。 (9)プロパティの中のBackStyle、BorderStyle、PictureSizeMode、などで図のプロパティを調整。 (10)他にもプロパティ項目をクリックしてF1を押すとヘルプが表示されます。それぞれのプロパティの意味を理解して最適な値を設定してください。 ではでは
- ksrnt
- ベストアンサー率50% (1/2)
No.5ですが、No.1様の回答を見て、書いたので間違い。失礼 当然それぞれ、Worksheets("Sheet1").Image1.Visible = True としなければなりません。
- ksrnt
- ベストアンサー率50% (1/2)
一つだけ。以下同じ Private Sub CommandButton1_Click() If OptionButton1.Value = True Then Image1.Visible = True Else Image1.Visible = False End If End Sub
- lark_0925
- ベストアンサー率63% (37/58)
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=46923;id=excel にあるAPIを利用すると、三角形をユーザーフォームに表示は可能です。 調べてみて下さい
- imogasi
- ベストアンサー率27% (4737/17069)
この質問は質問者が書いたとおりのことを、コードを書けばよいだけと思うよ。 質問には、オブジェクト名など書いておくと回答者に親切なんだよ。 フォーム UserForm1 オプションボタン OptionButton1 オプションボタン OptionButton2 -- シートに Rectangle1 Rectangle2 Rectangle3 Rectangle4 があるとする。 ーー 下記のオプションボタンのクリックイベントに Private Sub OptionButton1_Click() Worksheets("Sheet1").Shapes(1).Visible = False Worksheets("Sheet1").Shapes(2).Visible = False Worksheets("Sheet1").Shapes(3).Visible = True Worksheets("Sheet1").Shapes(4).Visible = True End Sub および Private Sub OptionButton2_Click() Worksheets("Sheet1").Shapes(1).Visible = True Worksheets("Sheet1").Shapes(2).Visible = True Worksheets("Sheet1").Shapes(3).Visible = False Worksheets("Sheet1").Shapes(4).Visible = False End Sub で質問のようになった。 つまるところ、 Visible = False だけの問題じゃないか。
- tinu 2000(@tinu2000)
- ベストアンサー率40% (147/366)
図形1~4をイメージ1~4で表示するとして、 Private Sub OptionButton1_Click() Image1.Visible = True Image2.Visible = True Image3.Visible = False Image4.Visible = False End Sub Private Sub OptionButton2_Click() Image1.Visible = False Image2.Visible = False Image3.Visible = True Image4.Visible = True End Sub 三角形の図形はペイントなどを使って三角形の図を描き、 画像として保存して、 上と同じようにイメージのPictureで表示する。 ではでは。
補足
画像ソフトで作りました。 その画像に対して、イメージ1と教え込まなくてはいけないと思いますが、手順を教えていただけないでしょうか。
お礼
早速の回答をありがとうございました。 画像の名前をimage1にしても無理だし苦労していました。
補足
ひとつ問題がおきました。 マクロを実行したら、画像が完全に固定されてしまって、ドラッグや右クリックをしても反応がありません。削除も出来ません。 原因は分かりますか? また、イメージ枠の中に入れた画像は少し汚くなってしまいます。 これも原因は分かりますか?