初心者です。
同じ形式のデータを、項目ごと(フォームでつくった入力欄ごと、って言い方でわかりますでしょうか)にセルに振り分けて、
上から順にシート上に入力していきたいのです。
VBAマクロをつかって作ってみたのですが、一つの行に対してしか反映しないものしか作れませんでした。
何か良い方法はありませんか?

このQ&Aに関連する最新のQ&A

A 回答 (1件)

私も似たような作業をさせていますので、参考になれば幸いです。


例えば、入力フォームをUserform1、テキストボックスをtextbox1,2,3
と仮定した場合、それらの値を取得して、worksheet上に出力させる
には以下のようなコードが有効かと思います。
一番左側のWorksheetのA,B,C列に順にデータが追加されます。

Dim EndRow as integer
Dim i as integer

Worksheets(1).activate
EndRow = Cells(Activesheet.rows.count,1).end(xlup).Row

For i = 1 to 3
cells(EndRow,i).offset(1,0).value = Userform1.textbox(i).text
next i

worksheet名, cells番地などはご自分の目的に応じて変更してください。
TextBox以外にも応用可能です。

頑張ってください。

この回答への補足

先ほど試してみたのですが,(Private Sub OK_click の後に入力しました)
6行目
cells(EndRow,i).offset(1,0).value = Userform1.textbox(i).text
の所でエラーが出ます。(メソッドまたはデータがみつかりません、というコンパイルエラーです)

指定した名前は合っていて、どれだけ訂正しても出てくるんですが、原因で思い当たることはありませんか?

また、更に初歩的な質問で申し訳ないんですが、ワークシートから、作ったプライベートフォームはどうやって呼び出すんでしょうか?

よろしくお願い致します。

補足日時:2001/04/09 13:04
    • good
    • 0
この回答へのお礼

早速のお答え、ありがとうございます!!o(^-^)o
週明け、試してみますね。
結果、ご報告させていただきます。

お礼日時:2001/04/08 00:22

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QエクセルのA欄に紐付けしたB欄の合計をA欄の属性ごとに集計したいのですが

下記のような表でB欄、C欄の小計をA欄の条件ごとに集計したいのですが
 A    B   C
12   14  20    A欄12のB欄合計 C欄合計
12   15  21    A欄13のB欄合計 C欄合計
12   16  22
13   17  23
13   18  24
13   19  25

A欄12・13の間に行を挿入してΣすればよいと思いますが、データが1000行以上でA欄の条件も100以上なので、何とか手間を少なく出来ないかと考えております。A欄の属性数値12とか13を入力することで簡単に集計できないかと、ネット検索してDSUMとかVLOOKとか挑戦してみましたがダメでした。
よろしくお願いいたします。
  
 

Aベストアンサー

『集計機能』そのもののように思われます。

質問の表で行なうと、

1.まず、A欄でソートしておきます。

2.表の内部を選択しておいて、データ→集計 を実行。
  出てきたダイアログボックスで、
   →グループの基準を『A』
   →集計の方法を『合計』
   →集計するフィールドの『B』、『C』をチェック
   →『現在の集計表と置き換える』にチェック
   →『グループごとに改ページを挿入する』はチェックしない
   →『集計行をデータの下に挿入する』にチェック

3.すぐ集計が終わります。
  左にアウトラインが表示されるので、小さな『2』をクリックすれば、質問の答えでしょう。


この集計結果のみをコピーしたい場合は、

4.小さな『2』をクリックして折りたたんだ状態で、表の中を選択し、

5.Ctrl+Shift+*(コントロールキーとシフトキーを押した状態でアスタリスクキーを押します)でデータをすべて選択

6.編集→ジャンプ→セル選択 でダイアログボックスの『可視セル』を選択しOK

7.Ctrl+C でコピーします

8.貼り付ける位置を選択し、Ctrl+V で貼り付け

算式など一切使わず、集計できるはずです。

また、集計処理を元に戻すには、表内をクリックした状態で、データ→集計→すべて削除 とします。元の表に戻ります。

『集計機能』そのもののように思われます。

質問の表で行なうと、

1.まず、A欄でソートしておきます。

2.表の内部を選択しておいて、データ→集計 を実行。
  出てきたダイアログボックスで、
   →グループの基準を『A』
   →集計の方法を『合計』
   →集計するフィールドの『B』、『C』をチェック
   →『現在の集計表と置き換える』にチェック
   →『グループごとに改ページを挿入する』はチェックしない
   →『集計行をデータの下に挿入する』にチェック

3.す...続きを読む

Q列ごとに全角英数・全角カナ・半角カナしか入力できないフォーマットをつくりたい

エクセルで基本フォーマットを作り、他の人に配布&入力してもらった後、全てを集計&データベース化する必要があるのですが。

各列に設けた項目により、‘全角英数のみ’‘全角カナのみ’‘半角カナのみ’の入力規則を設けた後、ロックをかけてみたのですが、変換できてしまう…?
全角英数&カナに関しては【=LEN()*2=LENB()】で逃げれたように思うのですが、‘半角カナのみ’の入力設定がわかりません…;;

ちなみに、別の列に入力したものを数式で半角に変換する方法は、今回のフォーマットには使いたくないのですが…??

どなたか、お助けください…**

Aベストアンサー

入力規則の[日本語入力]タブの設定は、
あくまでIMEを自動的に切り替えるだけのものですから、
残念ながら、指定した種類の文字以外の入力を禁止することはできません。

また、「全角英数のみ」「全角カナのみ」「半角カナのみ」を
簡単に判定する方法も、おそらくないと思います。

以下、かなり無理矢理ですが、
データ>入力規則>設定タブ>ユーザー設定>数式で…
--------------------------------------------------------------------
●A案:コード番号で指定する

例えば「半角カナのみ」の場合
(小書き文字,鍵括弧や長音記号など一部の記号を含む)

 =AND(161<=MIN(INDEX(CODE(MID(A1,ROW(INDIRECT("$1:$"&LEN(A1))),1)),)),MAX(INDEX(CODE(MID(A1,ROW(INDIRECT("$1:$"&LEN(A1))),1)),))<=223)
 【入力しようとした文字列のすべての文字のコード番号が、161以上223以下であれば許可】

コード番号は、CODE関数で調べることができます。
「半角カナ」161~223
「全角英数」9008~9082
「全角カナ」9505~9590

※「数式はエラーと判断されます。続けますか?」
 というメッセージが出てもそのまま「はい」で続行。
--------------------------------------------------------------------
●B案:許可する文字を全て書き出す

例えば「全角英数のみ」の場合

 =SUMPRODUCT(--ISERROR(FIND(MID(A1,ROW(INDIRECT("$1:$"&LEN(A1))),1),"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")))=0
 【入力しようとした文字列のすべての文字が、指定した文字列の中にあれば許可】
--------------------------------------------------------------------
※いずれもExcel2003で動作確認済
※当然ですが、[日本語入力]タブの設定も併用して、
 IMEを自動的に切り替えないと非常に不便です。
※数式が長いので、直接打ち込むのではなく、
 別の場所に書き込んでから、コピー>Ctrl+Vで貼り付けた方が確実です。

以上ご参考まで。

入力規則の[日本語入力]タブの設定は、
あくまでIMEを自動的に切り替えるだけのものですから、
残念ながら、指定した種類の文字以外の入力を禁止することはできません。

また、「全角英数のみ」「全角カナのみ」「半角カナのみ」を
簡単に判定する方法も、おそらくないと思います。

以下、かなり無理矢理ですが、
データ>入力規則>設定タブ>ユーザー設定>数式で…
--------------------------------------------------------------------
●A案:コード番号で指定する

例えば「半角カナのみ」の...続きを読む

Qエクセルで入力用の場所に入力したら、入力内容が番号ごとに反映される方法を教えてください。

エクセルで入力用の場所に入力をしたら、その入力内容が番号ごとに別のシートに反映されるようにしたいのです。
反映される表は、『材料費の表』と『会計帳簿』です。

入力項目は
1.仕入先
2.月日
3.工番
4.材料区分
5.材質
6.種類
7.品名
8.寸法
9.数量
10.単位
11.重量
12.単価
13.仕入金額
14.支払金額
15.差引残高
16.備考

この16項目の中から
材料費の表には
1.仕入先
2.月日
3.工番
4.材料区分
5.材質
6.種類
7.品名
8.寸法
9.数量
10.単位
11.重量
12.単価
13.仕入金額
16.備考
の項目を転記させ、1工番につき1シート、工番ごとに振り分けたいんです。
※工番25=シート1
 工番26=シート2 というように…。
工番は100番前後まであります。

会計帳簿には
1.仕入先
2.月日
7.品名
8.寸法
9.数量
10.単位
11.重量
12.単価
13.仕入金額
14.支払金額
15.差引残高
16.備考
の項目を転記させ、1仕入先につき1シート、仕入先ごとに振り分けたいんです。
仕入先の数は100前後です。
それぞれ1年分のデータを入力しないといけないので10000行はほしいのです…。

入力する内容がたくさんで、でも中身は同じなのでどうにか連動させて入力する手間を省きたいのです。
私はコンピューターのことが全然わからないので、どうしても人より時間がかかってしまいます…。
他にもやらなければならない仕事がたくさんあってどうしてもこれだけのために時間を割くことができないのです…。
いろんな方の質問を参考にやってみようと思ったのですが何が書いてあるのかちんぷんかんぷんで…
お忙しいかとは思いますが、こんな私を助けてください。

エクセルで入力用の場所に入力をしたら、その入力内容が番号ごとに別のシートに反映されるようにしたいのです。
反映される表は、『材料費の表』と『会計帳簿』です。

入力項目は
1.仕入先
2.月日
3.工番
4.材料区分
5.材質
6.種類
7.品名
8.寸法
9.数量
10.単位
11.重量
12.単価
13.仕入金額
14.支払金額
15.差引残高
16.備考

この16項目の中から
材料費の表には
1.仕入先
2.月日
3.工番
4.材料区分
5.材質
6.種類
7.品名
8.寸法
9.数量
10.単位
11.重量
12.単価
13.仕入金...続きを読む

Aベストアンサー

そこまで多いとエクセルよりAccessで
作るべきでしょう。
Accessが全然分からない状態から
作成まで教えるのは困難です。
外注を考えたほうが現実的だと思います。
構造は単純なので、SOHOだと安い人がいるかもしれません。
またはAccessを使える知人を探して
作ってもらったらどうでしょうか。

Qエクセルの、一番上の行に入力した項目名を、画面を下に移動しても絶えず表示できますか

エクセルについてまた質問させてください。

一番上の「2」の行に、店名や座席数、電話番号など項目名を10個ほど入力しました。

その後、多くのデータを何行にもわたって入力(現在60行)していますが、
「2」の行に入力した項目が上に隠れてしまい、たいへん不便です。

この項目名を、絶えず表示させることは可能でしょうか。

Aベストアンサー

一番上の「2」の行の一つしたの行を選択した後、
メニューバーから
「ウィンドウ」-「ウィンドウ枠の固定」で出来ると思います。

Qexcel 共通項目に対しての追加項目での自動入力

はじめまして。
excelでかなりたくさんのデータがある中で、とある項目が
共通なデータ(たとえばJANコードとか)に対して、とある
項目を追加で自動で入力する(たとえば商品カテゴリ名など)にはどの
ような方法がございますでしょうか?
このデータは以降も付け足しで増えていくデータなので、
毎回手動で入力するにはあまりにデータ量が多く、困っています。どうか宜しく御願いします。

Aベストアンサー

ANo.2です。

結論から言うと、VLOOKUP関数でできます。
まずはそれを理解してください。そうすればおのずと判るはずです。
と言うのは、意地悪なんでしょうね。


以下、一例です。
別シートにC列(カテゴリ)まできちんと入っている行をすべてコピーします。シート名は「商品マスタ」とします。
元のシートのA列はそのまま
B1は「=VLOOKUP(A1,商品マスタ!A:C,2,0)」
B2は「=VLOOKUP(A2,商品マスタ!A:C,2,0)」 (B1をコピー&ペーストでなります)
 :
C1は「=VLOOKUP(A1,商品マスタ!A:C,3,0)」
C2は「=VLOOKUP(A2,商品マスタ!A:C,3,0)」 (C1をコピー&ペーストでなります)
 :
とします。B列は不要ならそのままでいいですが、こっちの方がスマートな気がします。同一JANコードなら同一商品名でしょうからね。

新しい行が追加された場合、B列、C列は上の行をコピーするだけで値が入ります。
もし入らない場合は、新しいJANコードですので、「商品マスタ」に追加してください。

尚、別シートはできれば、JANコードの重複が無い様にして欲しいですね。無駄なので。


別シートをどうしても使いたくないというのであれば、VLOOKUP関数を調べてください。発想次第ではできるはずです。

ANo.2です。

結論から言うと、VLOOKUP関数でできます。
まずはそれを理解してください。そうすればおのずと判るはずです。
と言うのは、意地悪なんでしょうね。


以下、一例です。
別シートにC列(カテゴリ)まできちんと入っている行をすべてコピーします。シート名は「商品マスタ」とします。
元のシートのA列はそのまま
B1は「=VLOOKUP(A1,商品マスタ!A:C,2,0)」
B2は「=VLOOKUP(A2,商品マスタ!A:C,2,0)」 (B1をコピー&ペーストでなります)
 :
C1は「=VLOOKUP(A1,商品マスタ!A:C,3,0)」
C2は...続きを読む


人気Q&Aランキング

おすすめ情報