• ベストアンサー

Excelのマクロで困ってま~す!

こんにちは!いつもお世話になります。 Excelで簡単なデータベースを作成しようと思っています。 趣味で集めたミニドールが100を超えてしまいましたので、時々同じ物を購入してしまう事があります。 そこで、購入日、メーカー名、品名、種類、購入価格、個数、備考、の項目を作り、新しく購入する時に 検索でで調べて重複しないようにしようと思っています。 新規登録や検索はデータ→フォームでやろうと思っているのですが、毎回データ→フォームをClickしていくのは面倒だと思い、マクロボタンをClickするだけで フォームの画面が開けば良いと思ったのですが、マクロを記録中にフォームの画面で終了をClick出来ない んですよね。 何か良い方法はないでしょうか? よろしくお願いします! OSはwindowsXPProfessionalでExcelはOfficeXPが installされています。

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

  • ベストアンサー
  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.6

#3,5です。 こんにちは。 どうも、データ(リスト)のある位置がおかしいのではないかと思います。 3行目以降、もしくは3列目以降から始まるようなリストになっていませんか? リストの開始位置が、 このような位置から始まっていると、エラーになるようです。 解決方法としては、 1)リストの位置を、A1から開始されるように変更してからやってみる。  もしくは、データの位置を動かしたくないのであれば 2)リストが入力されている範囲に、 「Database」という名前で、「名前付き範囲」を指定する というのはいかがでしょうか。

mariko_f
質問者

お礼

ご指摘された通りでした。 無事に出来ました!!(^.^) データベースのシートの上に見出しを付けていました ので、A1のセルよりもかなり下になってしまいました。 Excelって奥が深いですね~! どうもありがとうございました。

その他の回答 (6)

  • sakenomo
  • ベストアンサー率52% (35/67)
回答No.7

> 出来れば、データフォームを表示させたところで、マクロの記録を終了したいのです。 これはエクセルの機能的に無理みたいですよ。 > 「WorksheetクラスのShowDataFormメソッドが失敗しました。」 もしかしたら、マクロを実行するシートのデータが入力されている範囲は、セル"D6"から外れていませんか? >Range("D6").Select     ↑は、「セル"D6"を選択する」という意味ですが、ShowDataFormメソッドを使うには、データが入力されているセルを選択しなければなりません。 そうしないと、上記のエラーメッセージが出ます。

mariko_f
質問者

お礼

皆様のお陰で無事に解決する事が出来ました。 本当にありがとうございました!

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.5

#3です。 実際に試しましたところ、#4さんの回答の通り、 データを入力してから閉じても、 マクロには「フォームの表示」のコマンドのみが記録されますね。 失礼いたしました。 しかしそれだとなおさら、mariko_fさんの記録したマクロの動作が怪しいですね。 マクロの記録中によけいな操作が入っているのかもしれませんね。 可能ならばいちど、コードを貼り付けて私たちに見せていただきたいのですが。

mariko_f
質問者

補足

皆様色々と面倒お掛けします。(^_^;) 皆様のアドバイス通りに、会社のパソコンでもやってみましたが、同じ結果です。 エラーメッセージは「WorksheetクラスのShowDataFormメソッドが失敗しました。」になります。 私のマクロ記録の内容を下記にコピーしましたので、よろしくお願いします。 初心者過ぎて皆様にご迷惑お掛けします! Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2003/6/30 ユーザー名 : 真理子 ' ' Range("D6").Select ActiveSheet.ShowDataForm End Sub

noname#102878
noname#102878
回答No.4

#1 #2 です。 > お使いのExcelのバージョンが掛かれていませんので使えないかもしれませんが。 Excel2002でしたね。 で、横から失礼。 > >一件分を入力後マクロの記録を終了 > これが原因だと思います。 > これでは、入力したデータがマクロに記録されてしまいます。 少なくともExcel2000ではデータを何件登録しても「フォームを表示する部分」しかマクロには登録されず、「フォームを登録し、なおかつデータを登録する」という登録のされかたはしませんでした。 Excel2002ではすべての操作が登録されちゃうのかな。

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.3

こんばんは。 まず確認ですが、mariko_fさんがしたいことは、  >データフォームを表示させたところで、  >マクロの記録を終了したいのです ですね? でしたら、  >一件分を入力後マクロの記録を終了 これが原因だと思います。 これでは、入力したデータがマクロに記録されてしまいます。 マクロ記録を開始したら、  データ-フォーム でフォームを表示させて、 なにもデータを入力しないでフォームを閉じてから、 マクロ記録を終了してください。

noname#102878
noname#102878
回答No.2

> 出来れば、データフォームを表示させたところで、 私の環境ではマクロはこの部分までしか記録されていませんでした。 ですので次回からこのマクロを実行するとデータフォームが表示されて入力待ちになっていてくれます。 > 試みたのですが、何故かエラーになってしまいます。 マクロをボタンに割り当ててクリックしたときのエラーですか? どんなエラーが表示されるのか書いてください。 > 記録を終了!ボタンに割り当てて、ボタンをClickするとエラーになってしまいます。 [!]キーにショートカットを割り当てたわけではないですよね? マクロのショートカットはアルファベットにしか割り当てられません。 ちなみに私の環境(Excel2000)で記録されたマクロのコードです。 ActiveSheet.ShowDataForm Excelの [ツール]-[マクロ]-[マクロ] で、登録されているマクロを選択して、[編集] ボタンを押すとVBEditorが起動しますので参考にしてみてください。 お使いのExcelのバージョンが掛かれていませんので使えないかもしれませんが。

noname#102878
noname#102878
回答No.1

こんにちは。 Excel2000を使用しています。 記録されたマクロを試してみましたか? [マクロ記録開始] データフォームを表示させて1件分のデータを入力。 [記録終了] 質問にあったとおりの操作でOKです。 マクロには「データフォームを表示させる」という部分しか記録されていません。

mariko_f
質問者

お礼

早速のアドバイスありがとうございます。 出来れば、データフォームを表示させたところで、 マクロの記録を終了したいのです。 データフォームには新規登録や検索がありますので、 その都度使用する内容が違います。 それと、新規登録の場合でも必要項目を入力した後に マクロの終了ですと、データフォームボタンをClickする度に同じ内容の情報が入力され、マクロが終了してしまいます。 また何か分かりましたらよろしくお願いします。

mariko_f
質問者

補足

何度も申し訳ありません。 試みたのですが、何故かエラーになってしまいます。 データフォーム表示させて、一件分を入力後マクロの 記録を終了!ボタンに割り当てて、ボタンをClickするとエラーになってしまいます。 また何か分かりましたらよろしくお願いします!

関連するQ&A