• ベストアンサー

エクセルで該当する選択肢に○をつける

ある官公庁に提出する許認可関連の書類なのですが、普通にパソコンで自動化するなら入力候補リストを表示させて番号などで選択させ該当する項目を表示・印字させることになると思うのですが、候補となる項目をすべて列記して該当する項目に○をつける形でしかダメだという話になりました。(手書き族滅ぶべし!) たとえば「東京・名古屋・大阪・広島・福岡」と候補となる要素をすべて列記した上で該当するものを○で囲まなくてはダメだというのです。このような選択肢が50カ所くらいあるのでオートシェイプを使って図形をつくる過程をマクロで記録してショートカットキーで実行させるのもむしろ面倒です。 どのように解決したらよいものでしょうか。

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

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

質問の書類の状況が、はっきりつかめないのですが、多分VBAで対処せねばならないケースではないかと思います。 C列のセルにに「東京・名古屋・大阪・・」が入っている。 セルの書式は、配置・横位置・中央揃えにしておく。 Sheet1のシートモジュール(VBEのVBAProjectのSheet1をクリックして出てくる画面)に下記を貼り付ける。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) On Error GoTo p1 Dim x As Range If Target.Column = 2 Then 'B列 Application.EnableEvents = False Set x = Target.Offset(0, 1) t = x.Top: t = t + x.Height / 10 l = x.Left: l = l + x.Width / 5 h = x.Height * 0.8 w = x.Width * 0.7 ActiveSheet.Shapes.AddShape(msoShapeOval, l, t, w, h).Select Selection.ShapeRange.Fill.Transparency = 0# Selection.ShapeRange.Fill.Visible = msoFalse p1: Application.EnableEvents = True End If End Sub B列をクリックすると、同行C列の地名に丸がつく。 通常操作では問題がないと思うが、DELキーや、色々のキーを押しまくるとStopするかもしれない。それらのことを知って少人数で使うなら、使えるでしょう。 テスト後などに、図形を全て消すときは Sub test02() ActiveSheet.DrawingObjects.Delete End Sub を実行すれば消えます。 なおB列に地名を入れて、B列のクリックで、B列地名に丸を囲むのは、コードを少し変えれば変えられます。

poor_Quark
質問者

お礼

VBAのコードをしこしこと書いてみたのですが、おかげでうまくいきそうです。当初スパゲッティだったコードが讃岐うどんくらいには、なれたと思います。細部について質問するかもしれませんが、よかったらご教授下さい。今回はありがとうございました。

その他の回答 (5)

  • banker_U
  • ベストアンサー率21% (17/78)
回答No.6

こんにちは 解釈ですが、「書類を作る都度、50個ぐらいの選択肢のひとつ(ないし複数)に、○をつけなければならない。」と言うことですよね。 で、「オートシェイプの楕円を書く作業を自動記録でマクロ化しようと思ったが、50種類のマクロを作らなければいけないので面倒」 と言うことですよね。 わたしも同じような事態になったことがあります。といっても選択肢は10個ぐらいでしたが・・・ そのときの私の解決方法は以下です。ご参考まで。 一言で言うと、オートシェイプの表示非表示(線のあるなし)を切り替える方法です。 1.とりあえず1回は手作業で全部50個の丸を描く。   書いた丸は、書式設定で全部「線なし」にしておく。 2.入力シートの方には、50個のチェックボックスを作っておく。 3.任意のチェックボックスをチェックしたときに、対応するマクロの線の色を黒にするマクロを組む   (当然はずしたときはまた「線なし」に戻す)。 あくまで概略だけですので、わからなければまた質問してみてください。

poor_Quark
質問者

お礼

実はチェックした項目に数字が付随するもので変数を扱える本格的なVBAでないと実現できないようです。ご回答いただいた内容はたいへん参考になりました。ありがとうございました。

noname#27115
noname#27115
回答No.5

状況がよく読めてないのですが、とりあえず、 オートシェイプで○を一つつくって 後はコピー(Ctrl+C) と 貼り付け(Ctrl+V) の 繰り返しでいいのではないでしょうか?

poor_Quark
質問者

お礼

私が書類を作るならどうでもなるのですが、リテラシーの低い(私も高いとは言えませんが)他人に作成作業をしてもらうとなると、画面のインターフェイス一つをとってもたいへんです。ご回答ありがとうございました。

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.4

>手書き族滅ぶべし! 同感です(^_^;) 私も、同じような物を作りました ○で囲む箇所は十数か所でしたが、文字入力でも、つい忘れそうになる箇所なども有ったので、すべての入力を、ユーザーフォームからするようにしました 官庁の書式の限ったことでは有りませんが、項目はいっぱい有るけど、書かなきゃならに所と、書かなくても良い所が、飛び飛びに有るので、つい忘れる事が有るのです すべての入力項目をユーザーフォームにまとめる事で、入力漏れが防げます ○で囲む部分は、フォーム上にチェックボックス、オプションボックス、コンボボックスを、内容に合わせて配置し、選択した項目の場所にオートシェイプで書き込むようにしました 確かに面倒な作業ですが、最初の1個が出来れば後は繰り返しです

poor_Quark
質問者

お礼

私が書類を作るならどうでもなるのですが、パソコンなどさわったこともないパートのおばさんたちの作業を想定してくれ、というお話で、なるべくメニューから番号を指定するとかの単純な入力の形にしなくてはならなかったのです。必要なセルにマウスオーバーで入力フォームが現れる形にしたかったのですが、すべて印刷書式とは関係のないユーザーフォームをつくって入力漏れがない限り最期に印刷ボタンを押せば必要な書式で出力される形にしました。まだ調整が必要ですがご回答のおかげでなんとか完成しそうです。ありがとうございました。

  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.2

マクロで、オートシェイプを作って、それを、目的のセルの位置に移動させればよいのでは。 cells("A1").Left cells("A1").Top とかで、セルの位置がわかります。

poor_Quark
質問者

お礼

オートシェイプのマクロを生成させてコードを作って組み込んでみました。時間はかかりましたがかなり勉強になりました。ありがとうございました。

noname#153814
noname#153814
回答No.1

=if(a1="東京"、○、"")なんて簡単な話ではないんですか。

poor_Quark
質問者

お礼

ご回答いただきありがとうございます。実は一つのセルに「東京・大阪・名古屋・広島」などとなっており2段3列で表現してあります。セルの設定で「折り返して表示」にチェックを入れてあり、選択肢のどれかに○をつけなくてはいけません。担当者によると選択肢として許されている要素はどれとどれか、ということが表示できるのでその方式は崩したくないそうです。

関連するQ&A

  • 重なったオートシェイプで下の図形のみを動かしたい

    質問お願い致します m( _ _ )m オートシェイプに関する質問です。 ある図形Aを描きます。 図形Aの上に、オートシェイプの○を書きます。 そうすると、○の下にある図形Aは、クリックしようにも選べません。 クリックすると○が選択されます。 ○を選択されないようにするにはどうすればいいですか? やりたいことは、○の下の図形を少し動かして微調整したいのです。 よろしくお願い致します。

  • Excelでのエントリーシートの入力

    企業から、Excelで予めフォーマットが作成されたエントリーシートが送られてきて、それに入力して送り返すことになっています。 そのエントリーシートの入力欄に、該当するものを○で囲む項目があるのですが、丸の囲み方がうまくいきません。図形描画を使ったんですが、丸で囲むと文字自体が下に重なって見えなくなってしまうのです。 どうすれば、該当項目をうまく丸で囲むことができるでしょうか? 初歩的質問ですが、よろしくお願いします。

  • 複数選択したセルの最後に同じ文字を加える方法

     Excelで複数セルを選択したとき、全てののセルの最後尾に同じ文字を加える方法はありますか?  また、オートシェイプでテキスト入りの図形を作成したときに、作成した全ての図形を選択し、テキストの最後に同じ文字を加える方法はありますか?

  • エクセルVBA 教えてください

    VBA初心者です。 現在エクセルで書類作成のテンプレート原本を作成しています。 その中に 1.携帯電話 2.ポケットベル 3.固定電話 4.その他 というように複数の中から選択する項目があります。リストボックスでとも考えていたのですが、選ばれていない項目も表示しておきたいので、数字にオートシェイプで丸を付けてもらおうと思っています。 そこで質問なのですが、この書式テンプレートを入力する際には入力フォームを呼び出します。そのフォーム内で □1.携帯電話 □2.ポケットベル □3.固定電話 □4.その他 のように複数選択可能なチェックボックス形式の入力欄を作成します。入力フォームの全ての項目が入力され、実行ボタンを押したのち、チェックの入れられた数字の上にのみオートシェイプで丸が入ることは可能でしょうか? 何分VBAの素人なので、何を書いている部分なのか等をわかりやすく教えてくれると幸いです。 よろしくお願いします。

  • Word2000で、アンケートを作成していますが、【以下の項目で該当す

    Word2000で、アンケートを作成していますが、【以下の項目で該当するものにチェックをして下さい】という質問でチェックして下さいというのを分かり易いように【□】の図形の中に【レ】が入っているような感じで表示したいです。しかしレの上に図形の□をかぶせようとしてもなかなかうまくいきません。他によい方法を御存知の方、教えて下さい。よろしくお願いします。

  • Excelでの○表示

    3つのセルに A1:みかん A2:りんご A3:ぶどう とそれぞれ項目が入力されています。りんごのA2セルをダブルクリックすると”りんご”の文字の上に○が表示されるような方法はありますか? できればラジオボタンのように、別のセルをダブルクリックすると他のセルの○は消える(A2りんごの上に○があるとし、A3ぶどうをダブルクリックするとA2りんごの○は消えてA3ぶどうの○のみに切り替わる)ようにしたいのですが。 または他の方法として、セルをダブルクリックするのではなく、コントロールツールボックスの「コマンドボタン」を4つ作り、それぞれのボタンを押すと対応したセルの文字の上に○を表示する(4つのうち増えた1つは○を全て消すボタンです)ような方法はありますか?

  • Word エクセル2007 図形のメニューリストを表示させておきたい

    Word・Excel2003でオートシェイプで絵を描く時に基本図形・線・コネクタ等それぞれの補助ツールバーを画面上に表示しそれから簡単にいろんな図形を描くことができましたが Word・Excel2007では、いちいち挿入 → 図形と選択しないと図形の種類を選択できません。2003のときと同じように図形のメニューリストを画面に表示させておくことはできないでしょうか? 表示させておく方法をご存知でしたら教えて下さい。

  • Excelのグラフに重ねて描画した図形が表示されない

    Excelでグラフを作成し、その上に重ねる形で図形を描画しました。 (グラフを選択したのち、図形描画ツールバーの「オートシェイプ」ボタンを使って作成しました) すると、グラフの選択を解除すると、描いたはずの図形が消えてしまいます。でも、グラフを選択すると、表示されます。印刷プレビューでも表示されますし、実際に印刷もされます。 グラフを選択していなくても図形が表示されたままにしたいのですが、どうすればよいかご存知の方、ご教授下さい。

  • EXCELで図形挿入すると時間がかかる

    EXCELで図形挿入すると時間がかかります。 環境は、WindowsXPでEXCEL2007を使用してます。 図形といっても、オートシェイプの基本図形や、矢印のことですが、 他のパソコンでは、さくさく表示されるのに、1台だけ、矢印を書こう とすると、選択してから表示されるまで数秒~数十秒時間がかかります。 どこの設定を直せばいいのか分かりません。 よろしくお願いします。

  • Excelでの作業に関しまして

    質問します。 Excelのファイルをダウンロードしました。 このファイルの中で表記されている選択するべき二つの項目、つまり 既婚・未婚を選択したいのですがどのように選択したらいいのでしょうか? 少し意味がわかりにくいかもしれません。 より詳しく言いますと、未婚の方に○をつけたいのです。 ただ単に「既婚」を消せばそれですむかとは思いますが、 該当する方に丸をつける方法はないのでしょうか? 手近に持っているエクセルの本には該当する方法が見当たりませんでしたので私の知識ではわかりません。 どなたか宜しくお願いいたします。

専門家に質問してみよう