アプリ版:「スタンプのみでお礼する」機能のリリースについて

教えてください。
エクセルでデータ入力に「データ」から「フォーム」を作成して入力しております。
共有でしようしますので、マクロボタンを作成して、ボタンをクリックすることで、フォームを表示するようにしたいのですが、Worksheeet クラスのshowDateFormメソッドが失敗しました。「デバック」が表示され、フォームが出来ません。マクロでエクセルからフォーム表示出来る方法をお願いします。

A 回答 (4件)

再度の登場、onlyromです。



回答のことお分かりになったようですね。
ではも少し詳しく説明します。

ShowDataFormメソッドが上手くいくかどうかは
表の左上のセルを選択する、しない、は関係なくて
表の位置(正確には、見出しの位置)に関係します。

これはフォームが基本的にはデータベースに入力する手段だと考えると
分かりやすいのではないでしょうか。

それをエクセルに例えると、
見出し行が1行目でデータは2行目以降から始まり、
かつ、見出し項目に抜けがない表のことです。。

例えば、見出しがA1~D1だとすると

●A1(日付)B1(品名)C1(入単価)D1(売単価)
▲A1(日付)B1(品名)C1(___)D1(売単価)

●は、データベースの形式になっているので上手くいくが
▲は、C1の項目名が空白なので上手くいかないということです。
 
そしてまた、

■C5(日付)D5(品名)E5(入単価)F5(売単価)

これも5行目に見出しがあるので上手くいかないわけです。


ならフォームを使えないのかというとそうではなくて、
このような場合は次のように表の範囲に名前を付けてやらなけれいけません。
 
■C5(日付)D5(品名)E5(入単価)F5(売単価)、の場合

(1)C5~F6(見出し行と次の行の2行)を選択する
(2)名前ボックスに【 DataBase 】という名前を入力するか
   「挿入」>「名前」>「名前の定義」から【 DataBase 】という名前を付ける

これで、表がどの位置にあっても、間に列が挿入されても
項目がとびとびになっていても、ShowDataFormは動作するようになります。


【結論】
表がどの位置にあってもまたデータベースの形でなくても使えるようにするには
使う前に「見出しと次の行の2行」に名前を付けてから使うようにする
と覚えておくといいでしょう。


----------------------------------------------------
因みに名前を付けるとコードは、ShowDataFormの1行でOKです。

Sub Test()
 ActiveSheet.ShowDataForm
End Sub


上記●の理想形でかつ名前を付けない場合は3行になります。

Sub test()
 Application.DisplayAlerts = False
 ActiveSheet.ShowDataForm
 Application.DisplayAlerts = True
End Sub

----------------------------------------------------------

どちらの場合もSelectメソッドはいりません。

以上。
 
    • good
    • 0

>1行目以外は対応できないのでしょうか。


手動ではできるので試してみたのですが、マクロからは出来ませんでした
ヘルプやWEBで探してみましたが、探しきれませんでした
>1列間隔で空白ができた場合は、使用できないsのでしょうか。
これも同じで、基本的にデータフォームは一つの連続した表の入力支援のようです

お力になれず、申し訳ありません
    • good
    • 0

表の左上を選択していないだけのような気がします


それぐらいしか思い当たる所がありません

この回答への補足

先日、有難うございました。
A1からC2の場合はフォームが作成されますが、
C3からD4でマクロを使用した場合、以前のメソッドが表示されます。1行目以外は対応できないのでしょうか。
もう1点お聞きしたいのですが、1列間隔で空白ができた場合は、使用できないsのでしょうか。
宜しくお願いします。

補足日時:2008/12/29 19:57
    • good
    • 0
この回答へのお礼

早速の返事有難うございました。
作成出来ました。
フォームを作成時、エクセルの本に、行を選択後、次に入力出来るセルを指定していましたが、表の左上を選択するのですね。
有難うございました。

お礼日時:2008/12/28 23:20

対象となる表は、1行目1列(セルA1)又は、1行目2列(セルB1)から始まってますか?


そうでなければ質問のエラーがでます。

表のレイアウト(表の始まりの行と始まりの列など)を提示した方がいいでしょう。
以上。

この回答への補足

早速の返事有難うございます。
確かに1行目1列(セルA1)または。1行目2列目(セルB1)から作成しますと出来ますが、B2からC3を選択しますと、作成出来ません。作成は可能でしょうか。表のレイアウトの表示方法を教えてください。また、行・列を挿入しますと表の入力位置が変わってしまします。宜しくお願いします。

補足日時:2008/12/28 23:25
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!