- ベストアンサー
エクセルフォームのマクロ記録について教えてください
- エクセルのフォームを使用する際、マクロに記録することで便利に利用することができます。
- しかし、マクロに記録すると、入力項目が一部しか表示されない問題が発生しています。
- 入力部分を範囲指定し、フォーム機能を使用する方法や、マクロに登録する方法についてご教授いただけないでしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1のものです。 (1)一般的にエクセルでデータベース的に利用する時は、項目見出しを第1行目に並べるのが前提になります。ご質問者の場合はどうなのでしょうか。 (2)またhttp://homepage2.nifty.com/housaka/excel/vbafaq21.htmlの中程を見つけました。参考になりませんか。 (3)Worksheets("sheet2").ShowDataFormだけでも上手く行きました。「 Range("A1:I149").Select」は不要ではないでしょうか。入力範囲を指定する必要はない。第1行目に項目名を入力するより他無く、その一部列だけを入力対象にすることが出来ないのではと思います。それをしたい時は ShowDataFormでは無く、フォームにテキストボックスでも貼りつけて、VBAプログラムを作るより他仕方が無いと思います。 (4)(A)入力列指定、(B)見だし行のあり場所指定、(C)入力範囲指定は出来ないようです。もっとも(C)はデータ入力を止めれば済むことです。行を飛ばすことは出来ないが、新規を選び、A列項目で1スペースを入れてエンタで飛んだようになります。
その他の回答 (2)
- ja7awu
- ベストアンサー率62% (292/464)
データ・フォームのことですね。 これで操作した内容は、記録出来ないと思います。 その必要がないからです。 直接セルを編集するコードを記述すればどうでしょうか。
補足
コードを一から記述する能力がないので「新しいマクロの記録」で手順を登録しました。 範囲指定をしてからフォーム機能を使えば、入力したくない部分は表示されずに、入力ウインドウがコンパクトですよね。そのままフォーム機能をつかうと、入力の必要のない項目まで、入力ウインドウに表示されてしまうので、範囲指定とフォームをマクロに登録したかったのですが。
- imogasi
- ベストアンサー率27% (4737/17069)
ShowDataFormでデータを入力するのは、項目をタブキーで 移動し、行(レコード)の移動はエンタキーで行う。 最終行の下へ自動的に、入力しただけ入れてくれるのでは 無いでしょうか。質問のコードで上手く行きましたが。
補足
登録したマクロを実行すると、入力フォームのウインドウにA列しか入力項目として出てこないんです。A列からI列まで入力したいのに。 記載したコードで上手く行ったのであれば、コード以外になにか問題があるのでしょうか。
お礼
問題解決しました!! お礼が遅くなり、申し訳ありません。(2)により、問題解決させていただきました。ちなみに (1)1行目は見出しになってました (3)同様にしてみたつもりですが、やはり思うようになりませんでした。 (4)たしかに、入力の必要がないところは飛ばして入力すればいいんですよね。 ありがとうございました。