• ベストアンサー

Excel2003でマクロの自動起動と、フォームを使った検索と結果の表示

はっきりいってVBAやったことないです。 でも、作ってくれって言われて、次のことがしたいです。 Excel2003で、住所の漢字と振り仮名のシートを作り、検索のマクロをつくり、そのマクロを自動起動させたい。 検索にはコンボボックスで漢字の住所の一覧を出し、振り仮名を表示ボタンでプロンプトで検索結果を表示したいです マクロの作成も、VBeditorの利用もまったく初めてです。 Excelは表の作成や式の入力、グラフ作成など一通り使用できます。 全盲なので、できるだけ、キーボード操作を教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

視覚障害がありながらグラフ作成もできるというのはすごいと思いますが、それはひとまず置くとして、質問の内容だけでは「こんな方法があります」という一般論ででしか回答ができません。それはマクロを作成するために必要な情報が足りないからです。 そこで補足質問です。 1.住所の漢字と振り仮名のシートがあるのは分かりましたが、何を入力して、何を検索するのですか? 質問文では「コンボボックスで漢字の住所の一覧を出し」とありますが、コンボボックスで選択した漢字住所をもとにして、振り仮名を表示させれば良いのでしょうか? 2.住所のレコードは何行くらいありますか? またそれは日々増えるデータですか?  行数が多いとなるとコンボボックスで選択する方法は、スクロールが必要になるのであまり便利な方法とはいえなくなります。 3.住所が入力されているシートのデータ配列を教えてください  例)1行目がタイトル、A2から下方向に漢字住所。B2から下方向に振り仮名 など なお全くのVBA初心者にはユーザーフォームや検索系のマクロはハードルが高いです。シート上に配置したコンボボックスとVLOOKUP関数の組み合わせならVBAの知識は不要なので、この方法もご検討されてはいかがでしょうか 

sousisouai
質問者

お礼

作ったのは私ではありませんが、作成ができましたので、お礼申し上げます。 また、今回行った手順も一応書いておきます。 ●まず、データをテーブルに入力します。 ●その後、ドロップリストを作成したいセルをクリックし、[データ]メニューの[入力規則]をクリックします。 ●[入力の値種類]のコンボボックスから、[リスト]を選択します。 ●[元の値]に、'='を先頭に付けて、絶対参照($を付けた形式;$a$1:$d$30)で住所の漢字が入力された範囲を指定します。 ●[空白を無視する]のチェックボックスと[ドロップリストから選択する]のチェックボックスをオンにして(初期状態でオン)、[OK]をクリックします。 ★リストが出来上がります。 ●振り仮名を表示したいセルに次の書式で入力します。 =if([リストを設置したセル番地]="","",vlookup([リストを設置したセル番地],[検索を行う範囲のセル番地の範囲],[検索対象の列番号(第2引数で指定した範囲の左側から1・2・3・...)],0)) ★住所の漢字の列がE列で、振り仮名がF列、リストの設置セルがB3の場合の例は、 =if(b3="","",vlookup(b3,e1:g80,2,0)) ●住所データが入力されたセルを選択し、[書式]メニューから[列]をクリックします。 ●[保護]タブをクリックし、[表示しない]のチェックボックスをオン(初期状態はオフ)にし、[OK]を押します。 以上です。 たいへん有用なヒントをありがとうございました。 今後ともよろしくお願いします。 作成者がファイルを公開してくれています。 http://homepage2.nifty.com/polyposis/excel/

sousisouai
質問者

補足

基本はExcelのデータがユーザーに簡単に変更できないようにすることです。 1.レコード数は60件くらい、変更はありません。 2.シート構成はA列に漢字、Bれつにふりがなです。 必要ならタイトル行を設けてもいいと思います。 関数を使うとテーブルを保護しないと変更されてしまいますよねえ。 マクロだと、シートの表示を非表示に設定できますよねえ。 今後ともよろしくお願いします。

その他の回答 (2)

  • AmuroRay
  • ベストアンサー率45% (246/538)
回答No.3

ども。 ANo.1です。 簡単にデータが変更できないようにするのが目的なら、Accessを使った方が作る方も使うほうも楽かもしれません。 1.テーブルにエクセルのデータをインポート。 2.住所の漢字、ふり仮名を抽出条件にしてクエリを作成。 3.検索キーワードを入力し、作成したクエリを実行するフォームを作成する。 4.データなどの内容が変更されないように、ロックを施す。 入出力がグラフィカルユーザーインターフェースで作成できるので、極力マウスを使用せず、TABオーダーを設定すればキーボード操作を中心に行えます。また作業結果を音で知らせたり、肢体障害+精神障害者、視覚障害者にもやさしいアプリケーションが作れると思います。 作り方は割愛させていただきますが、一般的な教則本に解説されていますのでそちらを補助をしていただいて参考にされると良いでしょう。 またAccessには既に住所管理などのテンプレートデータベースがあるのでなにも1から作らなくてもそれを利用したり、ウィザードを利用すればかなり簡単に作れるはずです。 ご参考までに。

  • AmuroRay
  • ベストアンサー率45% (246/538)
回答No.1

ども。 初級シスアド、システム管理実務です。 全盲の方にどのように情報を伝達するのが最善か、提示を願います。 文字情報のみとか、ウェブサイト情報も大丈夫(画像情報)なのかがわかると伝えやすくなると思います。 マクロで作りたいということですが、要求された機能を見る限り、マクロを作らずともExcelの基本機能で充分実現できると思います。 「ツール」→「フィルタ」機能を使えば、検索ができるので事足りるかと。 また、Accessがあるなら、クエリを使うのが最も適した使い方かと。何しろデータベースソフトウェアですから。さまざまな条件でデータを抽出したり、加工したりするためのものですし。何より高速です。 どれだけのデータ量があるかわかりませんが、Excel+マクロで検索を行うとデータが多ければかなりの時間がかかります。 Accessのようなデータベースは、抽出なので非常に高速です。 Excel+VBAの回答ではありませんが、いわれたことをただやることが最善ではないと考えます。 この作業はプライベート、ボランティア活動ですか?それとも、お仕事ですか?いずれにしても、良い提案をすることも必要だと思います。 Excel+VBAでできても将来データが肥大して、「遅くて困る」といわれたとき、どうしますか?面倒ではありませんか? データベースなら既に郵便番号、所在地のデータが用意されていたともいます。それを利用すれば所在地を入力しなくて済みますし、検索対象と関連付けするだけでことは済みます。郵便番号データも後悔されているので、Excel、Accessどちらでも使えます。 イメージ的には日本郵便の郵便番号検索の機能と同じです。 http://www.post.japanpost.jp/zipcode/index.html ご参考までに。

sousisouai
質問者

補足

今回はボランティアですね。 特定の市の住所の漢字とふりがなが用意されたシートがあります。 だいたい60件くらいです。 使う人が肢体障害+精神障害なので簡単にデータが変更できないようにするのが目的です。 全盲に対するアプローチとして、文字はもちろ日本語化英語ならOK。 WEBも読めますが、あまりサイドバーやナビゲーションバーが多いと本文を読むのが難しいということを考慮して、リンク先をご紹介いただけるとたすかります。 あと、どんな補足が必要でしたら、遠慮なくおっしゃってください。

関連するQ&A