• ベストアンサー

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

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

noname#241383
noname#241383

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

  • ベストアンサー
回答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/17068)
回答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と教え込まなくてはいけないと思いますが、手順を教えていただけないでしょうか。

関連するQ&A

  • エクセルVBAでグラフ表示

    エクセル2002使用です。 ユーザーフォームを作り、そこにコマンドボタンを置いています。コマンドボタンをクリックすると、ワークシート上にあるグラフを表示したいのですが・・・ Private Sub CommandButton1_Click() Charts("Graph4").Select Charts("Graph4").Activate End Sub 問題が2つ出てしまいました。 1.ワークブック内でシートは切り替わるのですが、グラフがユーザーフォームの後ろに隠れてしまったままでユーザーフォームの手前に表示できない。 2.グラフ(シート)を表示した後、ユーザーフォームに戻る方法がわからない。 ユーザーフォームからシートにあるグラフを表示させたい場合は、どのような方法がベストなのでしょうか?できれば、ユーザーフォーム上ですべてを行いたいのですが、グラフ作成のコードも新たに作らないと駄目なのでしょうか? 質問の仕方も難しく説明不足かもしれませんが、よろしくお願いします。

  • Excel VBAなんですけど…

    ワークシートにコマンドボタンを配置して、ユーザーフォームを呼ぶという、簡単なことを忘れてしまいました。どなたか教えてください。お願いします。

  • エクセルVBAでコンボボックス

    エクセルVBAのコンボボックスの使い方について質問します。 実現したいプログラムは 「チェックボックスから選んだ数字で計算するプログラム」 です。 具体的には… まず、コンボボックスをシート上に配置します。そのコンボボックスには 数字の1から10を選べるようにしておきます。 次に、コマンドボタンを配置します。これは単にプログラムをスタート させる目的です。 ユーザーは、まずコンボボックスから好きな数字を選択します。 そしてスタートボタン(コマンドボタン)を押します。 すると、選んだ数字の2倍がセルに表示されます。 さらに発展系としては… チェックボックスを4つ配置します。各チェックボックス には、+、-、×、÷を割り振っておきます。 また、コンボボックスを2つ用意し、それぞれ1~10の数字をリストにします。 ユーザーは、チェックボックスから好きな記号を選び、さらにコンボボックスから 好きな数字を選びます。そしてスタートボタンを押すと、選んだ数字を選んだ記号 で計算した値がセルに表示されます。 というようなプログラムを考えているのですが、うまくできません。 ポイントは、 ・チェックボックスにリストを入力する方法 ・チェックボックスの選択状態や、リストボックスから選ばれた数字を、  変数として取得する方法 インターネットで調べているのですが、リストボックスに値を入れるのにもマクロを走らせ なければならない方法とか、ユーザーフォームでの説明ばかりでなかなか実現に至りません。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_userform05.html プログラムのイメージ図としては添付の図の通りです。 どのようにプログラムを書けばいいのでしょうか。

  • Excel VBA 条件検索について

    ExcelVBAで 「データ検索後リスト表示をして、そのリストから該当するシートを選べば表示される」 というユーザーフォームを作成したいのですが、やり方がよく解りません。どなたか教えて下さい。 具体的には 「コマンドボタンが押された時に、ユーザーフォーム内のテキストボックスに入力された値(名称、日付等)と、複数のシート内のセルの値(名称、日付等)を比較して、一致(全一致、一部一致)した場合、ユーザーフォーム内のリストボックスに表示させる」 というものと 「リストボックスに表示されたものの中から見たいシートを選択すると、そのシートを表示する」 というものです。 リストの表示形式は シート名   名称  日付等 Sheet1    りんご  2013.01.01 Sheet2    りんご  2013.01.02 という具合にしたいと思っています。 ちなみに複数のシートと言いましたが、マスターシートを作りコピーして使用しますので、同一形式のものになります。 以上になります。 色々やってみましたが、うまくいきませんので、どなたか解る方は教えて下さい。 よろしくお願いします。

  • ユーザーフォームにあるチェックボックスやオプションボタンなどの選択結果保存

    VBA初心者で恐縮です・・・ ユーザーフォームにあるチェックボックスやオプションボタンなどの選択して作業を終えファイルやユーザーフォームを閉じると、次にファイルやユーザーフォームを開いたら、前回にチェックボックスやオプションボタンにチャックをいれたものが外れています。 このように、チェックボックスやオプションボタンにチェックをいれたのを、次回ユーザーフォームを開いたときに残しておくことは可能でしょうか? 可能なら、その方法をお教えください。 よろしく、お願いいたします。

  • エクセルのユーザーフォームについて

    現在、ワークシートの内容を見やすくするためにユーザーフォームを使用し表示させています。印刷は、ユーザーフォームにコマンドボタンを配置し、ワークシートを印刷しています。 せっかくユーザーフォームで見やすいレイアウトにしているので、表示させた内容をユーザーフォームごと印刷できればと考えています。 画面のハードコピーとかではなくて、コマンドボタンをクリックすることで印刷したいのですが、どなたか教えてください。

  • エクセルVBAでのセル番地取得プログラム

    このようなプログラムをVBAで作成したいのですが・・・。 1.選択セル上でダブルクリック 2.ユーザーフォームが立ち上がる 3.ユーザーフォームの項目に値を入力 4.コマンドボタンを押すと、入力した値が1で選択したセルに転送 5.次に1の1行下のセルに移動し、また値を入力しコマンドボタンで   値を転送 以下5の繰り返し というプログラムはどのように作成したら良いのでしょうか? 他の質問を参照したのですが、どうも求めているものとは違う感じです。 ご教授お願い致します。

  • vbaについて教えてください

    エクセルでワークシートに貼ったコマンドボタンをクリックするとユーザーフォームを呼び出してかつ、ユーザーフォーム上のコンボボックスに指定フォルダ下のフォルダを表示するものを作りました。 ユーザーフォーム上のコンボボックスに表示されたフォルダを切替選択するとリストボックスにそのフォルダ下のファイルを表示させたいのですがやり方がわかりませんので教えてください。

  • エクセル VBA 

    エクセルのユーザーフォームのチェックボックスについて 教えて下さい。 現在チェックボックスが15個あるのですが 例えばテキストボックスが2個あり テキストボックス1に数字の2 テキストボックス2に数字の6 を入れ、コマンドボタンを押すと チェックボックスの2から6にまとめてチェックが入るようなコードが組みたいです。 宜しくお願いします。

  • エクセルVBA オプションボタンのチェックを外したい

    いつもお世話になります。 エクセルで、ユーザーフォームでオプションボタンを使っているのですが、オプションボタンを選択し、ユーザーフォームを消して、もう一度表示させた時に、前に選択したオプションボタンの黒丸が残っている時があるのです。 ユーザーフォームを表示させた時に前に選択した黒丸を消す方法はありますでしょうか?

専門家に質問してみよう