• ベストアンサー

エクセルでオートシェイプをデータによって移動できますか?

エクセルでオートシェイプをデータによって自動で移動させる事は可能でしょうか? 例えば、 『血液型 : A・B・O・AB』 という項目があって、血液型によって○で囲む書式の場合に(血液型がA型ならば、Aを○で囲む)他のセルで血液型を入力して、その値が変更する事によって、囲む○(オートシェイプを使用)の位置を自動で移動させたい。 VBAはほとんどわからないので、マクロ使用程度でできたら、と思っています。 エクセルのバージョンは2003です。

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

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

VBAではないのですが、オートシェイプを移動させるのに私なりに探したやり方です。 移動ではなくオートシェイプを入れ替えて○の位置を変えてみる方法です。 過去ログの「質問:Excelでリストボックスよりオブジェクトを表示させたい」 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1454588 を応用して、○の位置の違う図を用意して血液型に重ねてはいかがでしょうか。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1454588
inagontake
質問者

お礼

回答ありがとうございます。 これならば、なんとか使えそうです。 早速試してみたいと思います。

その他の回答 (1)

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

関数ではオブジェクト(シェイプなど)の移動はできません。関数は値を扱うものですから、原理的に無理です。 値である丸付き文字や記号を扱えば動いたように見せられるケースはあるかもしれないが。 エクセルではマクロはエクセルVBAです。同じもののはずです。 アクセスだけが異色で、マクロという分野があります。 エクセルVBAを使わないとできないと思います。

inagontake
質問者

お礼

回答ありがとうございます。 マクロとVBAが同じ物というのはなんとなくそうなのかな… とは思ってましたが、やはりそうなんですか。 マクロで自動的(と言っていいのかわかりませんが)に 記憶させて、後でVisual Basic Editorで簡単な値などを 変えたりした事はあるのですが、一からVisual Basic Editorで…となるとわかりません。 VBAを使用すれば、可能なのでしょうか? 可能ならば、セルに値を入力したことでVBAが実行される という事は可能でしょうか?

関連するQ&A

  • エクセルでのオートシェイプの消し方

    エクセルでオートシェイプや貼り付けた図が、状況によって(計算結果により)消せれば面白い小細工が出来るのになと、ふと思いつきました。 VBAを使えば可能かもしれませんが、できれば面倒なのでVBAなしで、消す(画面外に移動でもいいのですが)ことは可能でしょうか。

  • エクセル。オートシェイプ間で書式のみをコピーできませんか?

    エクセル2000を使っています。 オートシェイプの書式設定について質問です。 既にあるオートシェイプAの書式を、同じく既にある オートシェイプBの書式に一致させる作業をしたいと 考えています。 Aが新たに作成されるものであれば、Bの書式を 「オートシェイプの規定値に設定」することにより、 一致させられますが、Aは既存なのでこれでは 反映させられません。 Aが一つや二つくらいならば、新たに書き直しても 良いのですが、沢山あるので、全部やり直しは きついのです。 セルの書式ならば、 「形式を選択して貼り付け」→「書式コピー」 で、書式だけをコピーできるのですが・・・ 同じようにオートシェイプ間で書式をコピーする 方法はないものでしょうか。?

  • エクセルのオートシェープについて

    エクセルのオートシェープで「グループ化ではなく、図形の結合」って出来ないですか? (○と△を合体させて一つの金魚のような図形にすることです。) VBAを使う方法でもそのようなことが出来ればありがたいのですが、そのサンプルプログラムを探しても見当たりませんでした。 方法知ってる方いましたら教えてください。

  • オートシェイプに関するマクロ

    エクセルのオートシェイプの書式設定のサイズの倍率(縦横比を固定)を、120%にするマクロって可能でしょうか? 沢山の図形の大きさを調節する作業があるのですが、その都度オートシェイプの書式設定を開いて値を入力すると大変な手間になってしまいます。 図形をセレクトしてマクロを実行するだけで、大きさを変化させるようにしたいのですが。 ご存知の方がいましたら、よろしくお願いします。

  • オートシェイプの移動

    条件付き書式を使って進捗率をデータバーで表示しています。 5行目の進捗率の右端に合わせた位置にオートシェイプで 作成した線を移動させたいのですが、 マクロで行う方法をご教授して頂けないでしょうか。 現在、手で毎日移動してます。 条件:月や曜日によって進捗率の増減があるため移動する値は一定ではありません 宜しくお願い致します。

  • 【エクセル】 写真やオートシェイプが1回で出ない

    お世話になります。 Excel2003を使っています。 特に何も設定をいじってはいないのですが… エクセルを開いていきなり写真を挿入すると、表示されません。 写真の存在を表す白い○(ハンドル)は出ています。 少し写真(実際は透明ですが)の位置をドラッグでずらすと表示されます。 ところが、その後はオートシェイプを入力しても、透明になってしまいます。 また、位置をずらすと画面には出るのですが、プレビューには表示されません。 「オートシェイプの書式設定」を見ても、「自動」になっていて特に問題はないようです。 書式設定を閉じると、塗りつぶしは白、罫線は黒と、ちゃんと初期値で表示されるのです。 一度、塗りつぶしは白、罫線は黒の状態で「オートシェイプの既定値に設定」としてみるのですが、結果は同じです。 また透明の状態で出てしまいます。 ちなみに、立ち上げてすぐ写真を挿入せずにオートシェイプを挿入した場合、 正常(塗りつぶし白、罫線黒)に表示されます。 毎回プロパティを1度開いて設定をあらためて「自動」にすれば問題なく使えるのですが、 なにぶん毎回なので、大変不便です。 (もともと「自動」になっているのに、再度「自動」に設定しなおす状況) 何が原因で、どうすれば1度できちんとオートシェイプや写真が表示されるのでしょうか。 よろしくお願いします。

  • エクセルのオートシェイプでいびつな丸を描きたい

    エクセルのオートシェイプについての質問です。 オートシェイプには色々な形がありますが、 いびつな丸を描きたいのです。 実際に描いてあるのを見たことがあるのですが、 どのようにすれば良いのかわかりません。 よろしくご指導をお願いします。

  • 特定のオートシェイプだけ削除するVBA

    エクセルで一枚のシートに複数のオートシェイプを使用したものがあります。 オートシェイプを使用しているセルの範囲は (A1:L22)と(M1:U22)の二箇所なのですが、 VBAで(A1:L22)の範囲にあるオートシェイプのみ削除する事は可能でしょうか? (A1:L22)内のオートシェイプは作業内容により毎回変わるので 形などは特定できません。 また、オブジェクトの選択で範囲指定をした後削除という方法もあるのですが この削除の作業の前後に他の作業のVBAを使用しているので VBAで削除が出来ればと思います。 よろしくお願いします。

  • エクセルでオートシェイプのコピー

    エクセル2000を使用しています。 セルの中に書き込んでいるオートシェイプをセルごとコピーしたいのですが上手くいきません。 普通はセルをコピーするだけで自動でオートシェイプもコピーされると思うのですが。

  • エクセルVBAオートシェイプがあったら、の書き方

    皆さんこんにちは。 エクセルVBAの初心者です。 IFを使った条件分岐が私には難しかったので SELECTCASEを用いてみようと思うのですが条件の書き方が分かりません。 やりたい事は セルA1が「文字が入っていない且つオートシェイプが入っていない場合」のみ アクション(オートシェイプ☆を貼る)を起こしたい、です。 イメージ的にこうなるかな?と思いコードを作成しましたが ケース2の「オートシェイプがあったら」という条件の書き方が分かりません。 Sub オートシェイプ貼り付け()   With ThisWorkbook.Worksheets("Sheet1")   Select Case True     Case .Range("A1").Value <> ""     Exit Sub     Case オートシェイプがあったら     Exit Sub     Case Else       オートシェイプ☆を貼る   End Select End Sub オートシェイプの有無を条件にするにはどのような書き方をすれば良いでしょうか?