• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロの設定)

マクロ初心者のための売上データ入力方法

このQ&Aのポイント
  • マクロ初心者の方でも簡単に売上データを入力する方法を紹介します。データの入力にはフォームを使用することができますが、マクロを使って直接入力する方法もあります。
  • 売上データの入力方法について詳しく説明します。【データ】-【フォーム】を選択することなく、マクロで設定してすぐにデータを入力できる方法をご紹介します。
  • マクロ初心者の方向けに、売上データの入力を簡単にする方法をご紹介します。マクロを使って店名以外の項目をフォームにしたい場合は、特定の記録を使って設定する必要があります。

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

>ということは A7以下からはずっと"DataBase"の範囲ですか? "DataBase" はアクティブセル領域と理解しています。   (アクティブセル領域とは、空白行と空白列で囲まれたセル範囲です。) A7を選択して、Ctrl+Shift+* (CtrlキーとShiftキーを押しながら*キーを押す)としてみて下さい。 これで選択された範囲を"DataBase" としています。 >範囲の中すべてが商品名で埋まるということが無い場合、 >商品名が無い個所を折りたたむことも可能でしょうか? 質問の意味を計りかねますが、【データ】-【フォーム】で入力する場合、 質問の例なら『順位、銘柄、販売数、単価、計』の全てが未入力の場合、その1行上が最終行になります。 かつ、その次に(未入力ばかリの行より下に)何か入力があると、   『リストまたはデータベースを拡張することはできません。』のメッセージが出るはずです。 【データ】-【フォーム】で入力する場合は、連続データとして入力する必要があるでしょう。 こちらは、質問の意味と違うかもしれません。ご容赦を。

mtk0227
質問者

お礼

作成することが出来ました。 ありがとう御座います

その他の回答 (2)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

>範囲名”database”の設定というのはシート内にある表という意味なんでしょうか? 少し意味合いが違うかもしれません。 ShowDataFormメソッドは自動的に "DataBase" という範囲を参照します。 ところが、マクロがうまくいかないので、事前に対象範囲に "DataBase" という名前を付けたわけです。 シートから、【データ】-【フォーム】を行ったり、そのシートに1種類の表しかなければ、マクロでもうまくできると思います。 やはり、複数のテーブルのどれを使用するか示していないわけで、メソッドが失敗知るのもうなずけます。 解答で書いたマクロは、どのテーブルを使うかを ShowDataFormメソッド が自動的に対象範囲にする 範囲名"DataBase" にセットしたわけです。

mtk0227
質問者

補足

度々スイマセン ということは A7以下からはずっと"DataBase"の範囲ですか? "DataBase"の範囲を決めることはできるのでしょうか? 仮に(ずうずうしくて申し訳ないのですがm(_ _)m) 範囲を決めること出来るとして、範囲の中すべてが商品名で埋まるということが無い場合、商品名が無い個所を折りたたむことも可能でしょうか?

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

【データ】-【フォーム】はシート内に1種類の表しかない場合は問題なく使えると思います。 シート内に複数の表がある場合、範囲名を設定する必要があります。以下はSheet1で行う例です。 『順位』の文字が入力されたセルを『A7』としています。実情に合わせて変更してください。 下のコード内では範囲名 "Database" を設定して "ShowDataForm" を呼び出しています。 こうしないと、シート内に性質の異なる表が複数ある場合、マクロから呼び出すときはうまくいかないはずです。 なお、"Database"は他の範囲名にはできません。 また当然ですが、データが1件もないときはエラーになります。 ご参考に。 Sub myDataForm()   Range("A7").Select   '『順位』の文字が入力されたセル      '入力の都度、範囲名を付けなおす   Selection.CurrentRegion.Select   ActiveWorkbook.Names.Add Name:="Database", RefersTo:="=Sheet1!" & Selection.Address   Range("A7").Select   ActiveSheet.ShowDataForm End Sub

mtk0227
質問者

お礼

出来ました! ありがとうございます。 範囲名”database”の設定というのはシート内にある表という意味なんでしょうか?