• ベストアンサー

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

  • Excelのマクロちょっと教えて~!

    過去の質問と重複しているかも知れませんけど、Excelで、マクロボタンをClickした時にExcel自体も終了するようなマクロを教えて下さい! マクロの記録でやろうとするとExcel自体を終了させてしまうので・・・無理ですよね!? よろしくお願いします!

  • マクロの組み方

    初めまして。Excel2003のマクロについて質問です。売上のデータベースがあって、各データには製品コードが付されています。コードのままだと直感的にどの製品か分かりづらいので、例えば”100”というコードは”A製品””200”というコードは”B製品”というようにマクロにより自動的にデータベースを変換、若しくは列に”製品名”を自動で追加するようなことが行いたいのですが、全くの初心者であるためどうやればよいか分かりません。 どなたかプログラムの方法を教えていただけないでしょうか?

  • Excelマクロボタンの色って変更できます?

    皆さんにはいつも大変お世話になっています。 質問が重複しているようでしたら申し訳ありません。 私はwindowsXPでExcelはOfficeXPを使用しています。 最近少しだけ(本当に少しだけ)マクロの勉強をして いるのですが、フォームで作成するマクロボタンって 味気ないグレーなんですよね。 中の文字色は変更する事が出来たのですが、マクロ ボタンそのものの色って変更出来ないのでしょうか? シートに複数ボタンがあった場合、機能に応じて色を 変更した方が解りやすいですし、ちょっと可愛い 感じがしますよね。 初心者でも簡単に解るようなアドバイスよろしく お願いします!

  • 至急VBAに詳しい方教えてください!!

    至急VBAが詳しい方教えてください!! こんにちわ。 マクロ作成の課題を出され、初心者なのでとても苦戦しています。 Do while notを2回使ってマクロを作成したいです。 画像のようなExcelデータがあり、A列(分類)~E列(商品名)までのデータは元から入力されています。 F列(重複)~H列(個数)にデータを入れるマクロを作りたいです。 F列(重複)⇒品名が重複していたら重複と文字を入れる G列(商品名)⇒重複していた商品の名前を反映させる。 H列(個数)⇒重複していた商品の個数を反映させる。 毎日勉強しているのですが、期日が迫っており焦っています。 よろしくお願いします。

  • エクセルのマクロの組み方に詳しい方

    エクセルのマクロの組み方に詳しい方はいらっしゃいませんか? 今、売り上げの記入を自動化できるようにマクロを組もうと試みています。 しかし、マクロの本を見てもちんぷんかんぷんです 。 頭の中で考えていることですが… まずデータベースとしてエクセル、またはそれに代用できるファイルに手入力で仕入れの詳細を記入していきます。 これは自分で入力していくので問題ありません。 ここからが問題です。 データベースとは別のエクセルにマクロを登録して、データベースから仕入れ情報を検索したいのです。 例えば… A1商品名、A2重量、A3仕入値…というように項目を作っていきます。 そしてB行に検索したい文字、数値を入力します。 そしてボタン1をクリックすると、B 行に入力した値に一致するデータを行ごとD行に呼び出します。 最後にD行の売上の項目に売上を記入して、更新したD行のデータをシート2、又は別のエクセルファイルに張り付けられるようにしたいです。 データの張り付けを文字のあるセルの最後尾の下の空白のセルに張り付けていけるようにしたいです。 どのようなマクロを組むと良いでしょうか?どのような言語を使うと良いでしょうか? 詳しい方是非是非教えて下さい。。

  • Access2007のマクロ

    Access2007のフォーム画面でコマンドボタンを貼り付けこれをクリックするとExcel2007が開くマクロに以下のパス名を書き入れてこれを開くにはマクロの何という項目にこの引数を入れればよいのか教えて下さい。 C:\Program Files\Microsoft Office\Office12\EXCEL.EXE D:\Excel\A_SHOKU\shoku2008.xlsm よろしくお願いします。

  • excelのフォームで 曖昧検索

    マクロ・VBEでデータベースを作り、専用フォームを作成しておりますが、 曖昧検索の作り方が分からずに悩んでいます。 そこで、excel データ⇒フォームで表示される、フォーム ⇒ 検索条件 の部分を参考にしたいと思うのですが、 ここのプログラミングをどのようにすればいいか、教えてほしいです。 excel2000を利用しています。

  • エクセル マクロ 検索 自動記録できない

    excel2003でマクロを作っていますが、  ファイルを立ち上げたときに自動的にファイル-編集-検索を実行し、 検索画面を起動するようにしたいので、その動作を自動記録しようとするのですが、記録できません。 過去の質問を見て、 Application.Dialogs(xlDialogFormulaFind).Show ↑これを使えば出来ると書いてありましたが、 少し古いエクセルの検索画面で、私が使いたいexcel2003の検索画面ではありませんでした。  どのようにすれば、検索画面をマクロで起動できるのでしょうか。 ご教示いただけますようよろしくお願いします。

  • Excel 2007 マクロは、即、そのまま使用はできないのですか?

    Excel 2007 マクロは、即、そのまま使用はできないのですか? Excel 2007を初めて使用して、Excel 2002のファイルを開きましたが、 マクロは、即、そのまま使用はできないのでしょうか? ざっと、基本的なセキュリティ設定はしたつもりですが。 1、Excel 2002の「ユーザー設定画面」で作ったツールバーが   Excel 2007のVBA画面の「ユーザー設定画面」には全く見当たりませんが、   下記フォルダのExcel12にExcel10を上書きしてしまえばよいでしょうか?  C:\Documents and Settings\Owner\Application Data\Microsoft\Excel 2、アドインをクリックした画面に現在「Excel 2002で自作したツールバー」が数個表示されますが、  ・即、マクロ実行できるものと、  ・再度、マクロの登録をしないといけないもの(マクロ実行不可のもの)、  がありますが、再度、マクロの登録をしないといけませんか? 何卒、ご教示のほどをお願い致します。

  • Excelマクロで罫線をひきたい。

    Access2000からエクスポートした結果のExcel2000のワークシートに、線をひきたいんです。 一番最初のセルはa1と決まっているけど、一番最後のセルは毎回変わってしまうのですが、 このセルを取得するためにはどんなマクロボタンを作成すればいいでしょうか? ただ本来の希望としては、マクロボタンひとつで、並べ替え>セルの変更>罫線、としたいのですけれど。 「セルの変更」というのは、エクスポートしたデータで「ランク」という項目があり、 これに「特・A・B」という項目があります。 Access上はひとつのフィールドにまとまっているのですが、Excel上では、それぞれ「特・A・B」という列を作成し、データがあったら、「○」を入れるというようにしたいのです。 (列が増えることになります。) また「備考1・備考2」がAccess上にあり、これは別フィールドとなっていますが、 今度はExcel上で「備考」としてひとつの列にしたいのです。 (列の減少) 別シートを作成してもかまいません。 このようなことはできるのでしょうか? せめて罫線だけでもひければ、と思います。 よろしくお願いします。

専門家に質問してみよう