• ベストアンサー

エクセルのvbaプログラムを教えてください。

ユーザーフォームに2つのオプションボタンがあります。 また、シート上には4つの図形があります。 オプションボタンの片方にチェックをいれコマンドボタンを押すと、シート上にある図形1と図形2を非表示にし、図形3と図形4を表示します。逆のほうをチャックしていた場合には、図形1と図形2を表示、図形3と図形4を非表示にするプログラムを教えていただけませんか? また、ユーザーフォーム上に簡単な図形(三角形)を表示させるにはどうすればよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

シート上でしたね、失礼いたしました。 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)

回答No.8

No.1,2,7です。 > 画像が完全に固定されてしまって・・・・ それはデザインモードになっていないからです。 コントロールツールボックスの中の「青い三角とペン」のボタンをクリックして凹んだ状態にすると、デザインモードになります。 > イメージ枠の中に入れた画像は少し汚くなってしまいます。 元の画像と汚くなった画像を見ないとなんとも言えませんが、 画像ソフトで作った元の画像の大きさを変えたらどうなる、 画像の形式がbmpだったらどうなる、jpgだったらどうなる、gifだったらどうなる、 試されましたか? 汚なくなる原因はこの辺りかも。 ではでは

回答No.7

No.1です。 補足に対してです。 > 画像ソフトで作りました。 この図をImage1に表示させる方法です。 (1)エクセルを立ち上げて、シートが表示されている状態で、 (2)表示→ツールバー→コントロールツールボックス (3)コントロールツールボックスの中のイメージ(山と月?の絵)をクリック (4)シート上の任意の場所でクリック→四角い枠が現れる  これがImage1です。小さな四角をドラッグすると大きさが変わります、枠の中でクリックしてドラッグしたら位置が変わります。 (5)四角い枠の上で右クリック→プロパティを選択 (6)プロパティの中のPictureの右側の(なし)の枠をクリック (7)四角の中に・・・が現れる。この四角をクリック (8)作った図を指定する。 (9)プロパティの中のBackStyle、BorderStyle、PictureSizeMode、などで図のプロパティを調整。 (10)他にもプロパティ項目をクリックしてF1を押すとヘルプが表示されます。それぞれのプロパティの意味を理解して最適な値を設定してください。 ではでは

noname#241383
質問者

お礼

早速の回答をありがとうございました。 画像の名前をimage1にしても無理だし苦労していました。

noname#241383
質問者

補足

ひとつ問題がおきました。 マクロを実行したら、画像が完全に固定されてしまって、ドラッグや右クリックをしても反応がありません。削除も出来ません。 原因は分かりますか? また、イメージ枠の中に入れた画像は少し汚くなってしまいます。 これも原因は分かりますか?

  • ksrnt
  • ベストアンサー率50% (1/2)
回答No.6

No.5ですが、No.1様の回答を見て、書いたので間違い。失礼 当然それぞれ、Worksheets("Sheet1").Image1.Visible = True としなければなりません。

  • ksrnt
  • ベストアンサー率50% (1/2)
回答No.5

一つだけ。以下同じ 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)
回答No.4

http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=46923;id=excel にあるAPIを利用すると、三角形をユーザーフォームに表示は可能です。 調べてみて下さい

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

この質問は質問者が書いたとおりのことを、コードを書けばよいだけと思うよ。 質問には、オブジェクト名など書いておくと回答者に親切なんだよ。 フォーム 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 だけの問題じゃないか。

回答No.1

図形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で表示する。 ではでは。

noname#241383
質問者

補足

画像ソフトで作りました。 その画像に対して、イメージ1と教え込まなくてはいけないと思いますが、手順を教えていただけないでしょうか。