• ベストアンサー

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

zap35の回答

  • ベストアンサー
  • 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れつにふりがなです。 必要ならタイトル行を設けてもいいと思います。 関数を使うとテーブルを保護しないと変更されてしまいますよねえ。 マクロだと、シートの表示を非表示に設定できますよねえ。 今後ともよろしくお願いします。

関連するQ&A

  • マクロで非表示シート内にあるデータの検索方法が知りたい

    マクロの勉強をしているのですが、練習で郵便番号検索ツールを作成したいと思っています。 概要  まず、郵便番号7桁を入力する。変換ボタンを押すと、住所を検索し、漢字で住所を表示し、読み仮名をひらがなで表示する。 とまぁ、こんな感じのものを作りたいと考えています。 で、取りあえず郵便番号と住所(読み仮名つき)一覧表を作りました。 一覧表は・・ A1には郵便番号、A2には都道府県名、A3には市区町村名、A4には町名、A5には市区町村名(ふりがな)、A6には町名(ふりがな) となっています。 さて、ここからが問題なのですが・・・ ユーザーフォームを使ってこれを使えるようにしたいのですが、検索方法がわかりません。 イメージとして、テキストボックスに入力してもらい、変換ボタンを押すと、エクセルシートの中から該当する郵便番号を検索し、その隣にある内容を変数に代入し、持ってこようと思っていました。 でも、ここで問題が・・・ 検索してるところが見えるとかっこ悪い 笑 というわけで・・もうちょっと何とかしたいんですけど、シートを非表示にしちゃうと、マクロの記憶で得た検索方法はエラーになっちゃうんですよね。。 そんなわけで、これをどうにかできないか考えています。非表示シートの検索方法があれば一番いいのですが、もしない場合は代替案を教えていただけるとありがたいです。 よろしくお願い致しますm(_ _)m

  • Excel2003でマクロが動かなくなった!

    Excel97で作成されたVBAマクロがあるのですが、 Excel2000とExcel2002までは問題なく動いていたものの、 Excel2003では実行途中でエラーが発生してしまいました。 VBAマクロには上位互換が無いのでしょうか?? 自分はマクロに詳しくなく使用する立場なのですが、 マクロを作成した人が既に退職している為、 修正できる人間がおりません。。 何か簡単な方法で回避できる方法は無いものでしょうか? 宜しくお願い致します。

  • アクセスでフォームからサブフォームへの検索について

    アクセスを勉強中の初心者です。是非教えて下さい。 請求書入力フォームを作成したので、別のフォームで請求書一覧を作成しています。その請求書一覧は、サブフォームにデータシート形式で[請求No.]、[年]、[月][社名]、[金額]が一覧にでるようになっています。その元になっているクエリの条件のところに、[年]→Like [Forms]![請求一覧]![年検索] & "*" [月]→Like "*" & [Forms]![請求一覧]![月検索] & "*" [社名]→Like "*" & [Forms]![請求一覧]![社名検索] & "*" を入力しています。 ここからですが、サブフォームの上に[年検索][月検索][社名検索]のコンボボックスと[検索ボタン]があって、それぞれコンボボックスから選択後、ボタンを押したら、その対象の年や月、もしくは社名に沿ったデータがサブフォームに出るようにしたいのです。検索ボタンのクリックイベント後のところにどういう命令文を書けばいいのでしょうか。マクロの再クリエなどで設定してもどうにもなりません。マクロもVBAがまだ理解できていないので、教えていただければ幸いです。よろしくお願い致します。

  • 検索結果の一覧表示

    ACCESS VBA初心者です。 住所録をつくっております。 検索結果を表示したいのですが 検索結果の一覧から選択する時に表示された項目をすべて色を変えたいのです。 (どの項目をクリックしても一行帯のように選択されたい) この場合どのようなもので表示をしたらいいのでしょうか。 すみません。この部分だけつまずいています。 教えて下さい。よろしくお願いします。

  • エクセルの検索マクロについて

    今までオートフォーマットで検索していたのですが,一つの列に存在するデータが多量になったため,マクロを使った検索としたいです。 検索の方法として,「コンボボックス」で選択したデータを検索したいと考えています。 現状は以下の通りです。 ○検索元となるデータは,1つのSheetにまとめてあります。 ○「コンボボックス」で指定したいデータは4つあります。 ○検索元のSheetの,D列が文字列,E列が数字,F列が文字列,G列が数字となっています。 この,D列~G列の中で,「コンボボックス」4つで指定したデータを別のSheetで表示させたいと考えています。 エクセルは,表計算やグラフならある程度使いこなせるのですが,マクロは全くの素人です。 お手数をお掛けしますが,どなたか知恵を授けてください。 よろしくお願いします。

  • エクセルの検索マクロについて

    今までオートフォーマットで検索していたのですが,一つの列に存在するデータが多量になったため,マクロを使った検索としたいです。 検索の方法として,「コンボボックス」で選択したデータを検索したいと考えています。 現状は以下の通りです。 ○検索元となるデータは,1つのSheetにまとめてあります。 ○「コンボボックス」で指定したいデータは4つあります。 ○検索元のSheetの,D列が文字列,E列が数字,F列が文字列,G列が数字となっています。 この,D列~G列の中で,「コンボボックス」4つで指定したデータを別のSheetで表示させたいと考えています。 エクセルは,表計算やグラフならある程度使いこなせるのですが,マクロは全くの素人です。 自分の力で解決しようと,色々試しましたが無理でした・・・ お手数をお掛けしますが,どなたか知恵を授けてください。 よろしくお願いします。

  • EXCEL2003の「マクロを含んでいます」の表示

    会社でEXCEL2003を使っています。 EXCELで毎月する作業があるのでマクロを組んでPersonal.exeに保存 しました。そうしたらその後作成して保存したExcelファイルは マクロを使っていなくても全部開く時に「セキュリティ警告/ ”(ファイル名)”はマクロを含んでいます」と出るようになって しまいました。 他の人から表示がでると面倒なのでVBAの画面で標準モジュールの中の MODULE1~を削除するよう言われてやっているのですが、マクロが 増えてきてこのMODULE1~をいちいち削除するのも大変でなりません。 新規ファイルを保存する時にこの標準モジュールの部分が保存されないようにする方法はありませんか?

  • エクセル(2007~)のマクロ検索での画面表示についてお教え下さい。

    エクセル(2007~)のマクロ検索での画面表示についてお教え下さい。 エクセル初心者です。現在お仕事で入力作業をしていますが、 マクロで作成されているデータにつきまして、 登録番号 氏名 フリガナ ローマ字氏名 生年月日 受付日 などの個人情報が多量に入力されております。 例えば、 生年月日のみ、まだ入力がされていないため マクロの検索で登録番号から一人一人呼び出して生年月日を追加入力して行くのですが、 検索が終わった後、1件分のみの表示になるのですが もとの表示に戻したいのです(再度、多量の個人情報を表示)。 どこのどのボタンを押せば良いか、教えて頂きたいです。 それともう1点なのですが、 半角カタカナは、ャョ などの小文字が使えない(データベース?などですでに設定されているので、良子:リヨウコとなる)ようなのですが、手入力してみるとリョウコと入力が出来るのですが どのような事が考えられますでしょうか。。? 分かりづらい表現で申し訳ありませんが宜しくお願い致します。

  • エクセルのフォームに検索結果を表示する方法について

    エクセルのフォーム上に商品名を入力して、別シートに入っているデータを検索し、該当するデータを上記フォーム上に表示させたいと考えています。 【エクセルのフォームの概要】 (1)フォームはuserform1に作成してあります。商品名を入力→txtbox1 (2)「商品一覧表」というシートに商品一覧表が作成されていて、A1~J1000までデータが入っています。 (3)検索に引っかかるデータはその一覧表の左から2番目(商品名)の列です。 (4)該当するセルがある行の左から3番目のデータをフォームのtextbox2に表示させたいと考えています。 下記のように考えていますが、どうもうまくいきません。ご指導の程宜しくお願い致します。(つい最近マクロを始めたばかりなので、とんでもない構文なのかもしれませんが、自分ではどこがどうダメなのかわかりません。) Private Sub CommandButton1_Click() Dim RangeA As Range Set RangeA = Worksheets("商品一覧表").Range("A1:J1000") UserForm1.TextBox2.Text = Application.WorksheetFunction.VLookup(TextBox1.Value, RangeA, 3, False) End Sub

  • 【Excel】マクロでメッセージを表示する

    Excel2003を使用しています。 Aという名前の一覧表を作成するマクロがあります。 マクロAは『Sheet1』を選択した状態で正しく実行されますので、うっかり他のシートを選択した状態で、マクロAを実行してしまうと、一覧表が正しく作成されません。 こうなった場合、誤って作成された一覧表を消去して、もう一度やり直せば済むことなのですが、『Sheet1』を選択していない状態でマクロAを実行しようとすると、何かメッセージ(例えば、“Sheet1を選択後、実行してください”みたいな)が表示されるようにすることはできるでしょうか? 参考書にダイアログボックスにメッセージを表示させるマクロが載っていましたので、マクロAにそのようなコードを追加する(?)ことで可能かな??と思い、質問させていただきました。 よろしくお願いします。