データフォームが上手く表示されないが?

Question 800-01 拙著「Excel VBA 実用マクロ800連発 [中・上級編]」 Previous Next
クリックすると目次が表示されます。 サンプルNo.672 ◆ 環境・・ Excel 2010 & Windows 7

032ページのような「フォーム」フォルダーが出てきません。 フォームは流用してはだめなのですか?
何かヒント(アドバイス)のようなことでもあれば、ご連絡いただけますでしょうか。
よろしくお願いいたします。
Answer   Copyright (C) 2012.5.15 永井善王
拙著「Excel VBA 実用マクロ800連発 [中・上級編]」をご購読、ありがとうございます。
申し訳ありませんが回答に入る前に、2点確認させてください。

1. 『032ページのような「フォーム」フォルダー』とは
実行時エラー '\' 本の032ページには該当がないようですが、215ページのサンプルNo.672「データフォームで入力する」にある右図のとおりの [データフォーム]のことでしょうか。

2. 『「フォーム」フォルダーが出てきません』とは
右図のような{データフォーム}が表示されなくて、下図どちらかの [実行時エラー] が表示されてしまうということでしょうか。
  (A)
実行時エラー '9'
  (B)
実行時エラー '1004'

[データフォーム]は、ワークシートに作成されているリストのフォーマットに合わせて、Excelが自動的に作成してくれます。
サンプルNo.672のマクロは下記のとおりで、指定したワークシートをアクティブにするコードと、データフォームを表示するコードがあるだけです。
実行時エラー '1004'
Sub データフォームで入力する()
   Worksheets("Sheet1").Activate
   ActiveSheet.ShowDataForm
End Sub
よって、このマクロを、「Sheet1」という名前のワークシートが存在しない状態で実行すると (A)のエラーになってしまいます。
コード中のワークシート名と実際のワークシート名を再チェックして一致させるようにしてください。

ワークシート名が一致している場合でも、
 ・ワークシートのレイアウトがリスト形式 (注1) になっていないか、
 ・リスト形式になっていても図のように左上端セルがA1セルから離れたセル (注2) になっている場合
  は、 (B)のエラーになってしまいます。
 (注1) リスト形式とは連続した各列に見出しがあり、各列見出しの下に同じ形式のデータが連続して
    並んでいる表
 (注2) A1セルに隣接したA2、B1、B2セルなら支障ないようである

なお、左上端セルがA1セルから離れたセルになっているリストでも、下記のようにDATA.FORM関数を利用すればエラーを回避することが可能です。
    Worksheets("Sheet1").Activate
    Application.ExecuteExcel4Macro "DATA.FORM()"
以上を参考にして再チャレンジされ、結果をご連絡ください。 Eメールアドレスは Profileページ にあります。お待ちしています。
[データフォーム]からSheet1を編集する方法を教えてください
ご回答いただき、ありがとうございます。 1番上の図の[データフォーム]は上手く表示されます。
あと知りたいことは、表示された[データフォーム]から 「Sheet1」を編集する方法です。
お忙しい中ご迷惑をお掛けいたしますが、ご回答いただけないでしょうか。 よろしくお願いいたします。
Answer   Copyright (C) 2012.5.15 永井善王
お尋ねの件はマクロとは無関係で、Excelの一般操作になります。 よって、このサイトでは通常扱わないテーマですが、最初のご質問の延長線上にあるので、下記のとおりお答えしておきます。 参考になれば幸いです。

[データフォーム]からSheet1を編集するための操作方法
1. サンプルブック 672.xls を開く
2. Titleシートにある [ためす]ボタンをクリックする
3. Sheet1が表示されて [データフォーム]に「細居奈津」が表示されたら、   [次を検索(N)]ボタンをクリックする
4. [氏名(B]のテキストボックスに「永井はるか」が表示されたら、そこへ「永井善王」と入力する
5. [閉じる(L)]ボタンをクリックする
6. Sheet1のB3セルが「永井善王」に変わる
さっそく試してみてください。

 

Excel VBA Macro