先日もアンケートの結果入力について質問させて頂いたのですが、
アンケートの仕様が変わってしまい、自分で直そうとしたのですがうまくできず、すみませんがまた教えてください。。。
アンケートの結果を集計するため、入力用シートにデータを入力しています。
入力用シートの構造は、上部のヘッダ部分に、担当者、社名、発売日、商品名の4つの情報があり
その下に設問が18問あり、設問の右のセルにチェックボックスがあって、
チェックあり、なしを入力していくようになっています。
チェックボックスの値は非表示のセルにリンクするようにしています。
となりのデータベースシートにその結果を転記していきたいのですが、
データベースシートにはあらかじめ多数の担当者、社名、発売日、商品名の情報が入っていて、
入力シートのヘッダ部分の4項目全てと一致する行に、アンケートの入力結果を転記したいです。
入力シート
担当者名 鈴木
会社名 A株式会社
発売日 11/21
商品名 りんご
設問1 チェックあり
設問2 チェックなし
設問3 チェックあり
…
設問18 チェックあり
データベースシート
担当者名 会社名 発売日 商品名 設問1 設問2 … 設問18
鈴木 B株式会社 10/30 なし
佐藤 C株式会社 12/5 ぶどう
高橋 A株式会社 11/1 いちご
鈴木 A株式会社 11/21 りんご
・・・・・・
上記例ではデータベースシートの上から4行目のところに、設問1~18の結果を横に並べて転記したいです。
また、それとは別に、データベースシートと同じ構造の別ブックに同様にデータを転記していくマクロも知りたいです。(実行時にファイルを開いて、同じように4条件全部一致した行にデータを転記したい)
説明が下手で申し訳ないですが何卒お助け下さい。。
よろしくお願いいたします<(_ _)>
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
えっと。
回答を貰っても,何が気にくわなかったのかプイッと閉じ逃げで去ってしまわれたご相談の,続きのご相談ですね。それと前回も「具体的なマクロが教わりたいときは,なんて名前のシートのドコ番地のセルに何を記入してる」のか手抜きせず判るように情報提供して下さいってお話ししておきましたが,そういう所もスルーのままですね。これで2回お話ししましたから,次の3回目はもう大丈夫ですね?
さて。
「具体的な」説明の書き方の例:
シート名Sheet1のB1からB4セルに担当者名から商品名までを記載している
設問1、2,3…18のチェックボックスをそれぞれA11からA28セルにリンクしている
フォームコントロールのコマンドボタンをシートに配置している
(アクティブXコントロールのコマンドボタンではないので間違えない事)
各情報を、シート名Sheet2のA,B,C,D列を探してE列以右に順番に転記していく
Sheet2は1行目をタイトル行として記入済みで、2行目から記入していく
手順:
ALT+F11を押す
現れた画面で挿入メニューから標準モジュールを挿入する
現れたシートに下記をコピー貼り付ける
sub macro2()
dim r as long
dim LastRow as long
lastrow = worksheets("Sheet2").range("A65536").end(xlup).row
for r = 1 to lastrow
if worksheets("Sheet1").range("B1") = worksheets("Sheet2").cells(r, "A") _
and worksheets("Sheet1").range("B2") = worksheets("Sheet2").cells(r, "B") _
and worksheets("Sheet1").range("B3") = worksheets("Sheet2").cells(r, "C") _
and worksheets("Sheet1").range("B4") = worksheets("Sheet2").cells(r, "D") then
exit for
end if
next r
if r > lastrow then
’リストに該当が無かった場合
worksheets("Sheet2").cells(r, "A") = worksheets("Sheet1").range("B1")
worksheets("Sheet2").cells(r, "B") = worksheets("Sheet1").range("B2")
worksheets("Sheet2").cells(r, "C") = worksheets("Sheet1").range("B3")
worksheets("Sheet2").cells(r, "D") = worksheets("Sheet1").range("B4")
end if
’転記
worksheets("Sheet2").cells(r, "E") = worksheets("Sheet1").range("A11").value
worksheets("Sheet2").cells(r, "F") = worksheets("Sheet1").range("A12").value
worksheets("Sheet2").cells(r, "G") = worksheets("Sheet1").range("A13").value
worksheets("Sheet2").cells(r, "H") = worksheets("Sheet1").range("A14").value
worksheets("Sheet2").cells(r, "I") = worksheets("Sheet1").range("A15").value
worksheets("Sheet2").cells(r, "J") = worksheets("Sheet1").range("A16").value
worksheets("Sheet2").cells(r, "K") = worksheets("Sheet1").range("A17").value
worksheets("Sheet2").cells(r, "L") = worksheets("Sheet1").range("A18").value
worksheets("Sheet2").cells(r, "M") = worksheets("Sheet1").range("A19").value
worksheets("Sheet2").cells(r, "N") = worksheets("Sheet1").range("A20").value
worksheets("Sheet2").cells(r, "O") = worksheets("Sheet1").range("A21").value
worksheets("Sheet2").cells(r, "P") = worksheets("Sheet1").range("A22").value
worksheets("Sheet2").cells(r, "Q") = worksheets("Sheet1").range("A23").value
worksheets("Sheet2").cells(r, "R") = worksheets("Sheet1").range("A24").value
worksheets("Sheet2").cells(r, "S") = worksheets("Sheet1").range("A25").value
worksheets("Sheet2").cells(r, "T") = worksheets("Sheet1").range("A26").value
worksheets("Sheet2").cells(r, "U") = worksheets("Sheet1").range("A27").value
worksheets("Sheet2").cells(r, "V") = worksheets("Sheet1").range("A28").value
end sub
それと?
>それとは別に、データベースシートと同じ構造の別ブックに同様にデータを転記していくマクロも知りたいです。
それは,単に転記先が違うだけで仕事は(=マクロは)一緒という事で良いんですね。
基本は「workbook("ブック名.拡張子").worksheets("シート名").…」のように,具体的にどのブックの具体的にどのシートの具体的にドコのセル番地と指定するだけです。
ありがとうございます!!!
思った通りにシート転記できました!!!
また先の質問には回答者の皆様にお礼のコメントを入れたつもりだったのですが、うまく反映されていなかったのか、不愉快な思いをさせてしまったようで申し訳ございません。
あの後色々やってみたのですがうまくいかず、仕様も変わってしまったため再質問させて頂いた次第です。
すみませんがもう一つ教えて頂きたいのですが、別ブックに転記する際、そのファイルは作業のつど変わる可能性があり(中身の構造は同じです)、別の転記ボタンを作ってクリックするときに選択する方式にしようと思っています。
いま頂いたコードで書き換えて作ってみたのですがエラーになってしまい。。。
どうしたらよいでしょうか。ご教授いただけないでしょうか。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 最終行まで数式をコピーする 3 2023/01/03 15:44
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) VBAで同フォルダ内の別ブックを開かず参照して条件の一致する行の指定セルを抽出するには? 1 2022/07/21 19:29
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Excel(エクセル) 【条件付き書式】countifsで複数条件を満たしたセルを赤くする方法 2 2023/02/09 23:53
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Excel(エクセル) EXCEL マクロで 同じフォルダ内の複数ファイルの複数行全体を選択して1つのファイルに集約 4 2022/09/27 18:41
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
VBA 別ブックから条件に合うものを転記したいです
Visual Basic(VBA)
-
エクセルで、チェックボックスにチェックをいれた行のデータのみを別シートに転記するには
Excel(エクセル)
-
Excel チェックボックスにチェックが付いた複数のセルを別のシートにコピー・貼り付けするマクロを教
Visual Basic(VBA)
-
-
4
エクセル VBA 他シートの行を選択して,転記する。
Visual Basic(VBA)
-
5
【VBA】元のシート内の文字列を別シートと比較し、一致したら元のシートの別のセルへ転記する方法。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
-1234 を (1234) と表記する由...
-
エクセルで現場ごとに機材の移...
-
他部署からもらう データで、 ...
-
Excel 1の位の数字で処理を分岐...
-
Excelのセルの色を変えた行(す...
-
エクセルの数式について教えて...
-
Excelでの記号と特殊文字につい...
-
とびとびの大量セルを選択した...
-
MACにおけるエクセルの入力トラ...
-
ある表にフィルターをかけて出...
-
Lookup関数
-
エクセルの数式バーのフォント...
-
再質問です。マクロの修正箇所...
-
エクセルで「ページレイアウト...
-
EXCELの散布図で日付が1900年に...
-
【マクロ】VLOOKUPにて参照元に...
-
exselの質問です
-
エクセルでファイルの最終更新...
-
Excel 大小比較演算子による「...
-
エクセルの問題です。絶対値の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 別シート、別ブックへ条件...
-
コピペマクロを高速化したい(E...
-
ローマ字→カタカナへ変換(エク...
-
エクセルVBAでセルに入力したパ...
-
EXCELのセルへ、デジタル時計を...
-
マクロ 実行ボタンを押さずに...
-
Excel:コマンドボタンの移動
-
複数ファイルにある特定のシー...
-
Excelのワークシート上に検索窓...
-
コマンドボタンを押すたびに大...
-
押したボタンの位置取得(共通の...
-
スクロールしてもボタンを常に...
-
Excel VBA のdebug(F8キー) が...
-
excelに貼り付けた数値が勝手に...
-
Excelを開いた時に表示さ...
-
エラーになってないのにVBA...
-
エクセルVBAでOptionButtonのオ...
-
エクセルのマクロ機能で前のシ...
-
ShowAllDataのエラーを回避したい
-
エクセル グラフの軸の最小値最...
おすすめ情報