• ベストアンサー

VBAでやりたいのですが

例えば,セルのA1から下に色々な言葉 犬 猫 ねずみ . . と,不特定数の言葉が入力されていて セルB1から下に同じように バナナ もも ブドウ . . . とやはり不特定数の言葉を入力して,この言葉をすべて自動的に組み合わせてくれて,しかも 犬 は バナナ が好きだと思いますか? のように間に「は」や「が好きだと...」を結合した形で別なシートに組み合わせの結果を表示させたいのですが,どのようなマクロをかけばいいのでしょうか。うまくやりたいことも説明できてないかもしれません。すみませんが教えてください。

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

  • ベストアンサー
回答No.6

No4です。 補足をみました。これでいいと思います。 Sheet1にあるデータを組み合わせ、sheet2のC8セル以下に表示します。 Sub test2() With Worksheets("Sheet1") x = .Cells(.Rows.Count, 3).End(xlUp).Row y = .Cells(.Rows.Count, 6).End(xlUp).Row z = 7 For n = 10 To x For i = 10 To y z = z + 1 Worksheets("Sheet2").Range("C" & z) = .Cells(n, 3).Value & "は" & .Cells(i, 6).Value & "が好きだと思いますか?" Next i Next n For i = 10 To y For n = 10 To x z = z + 1 Worksheets("Sheet2").Range("C" & z) = .Cells(i, 6).Value & "は" & .Cells(n, 3).Value & "が好きだと思いますか?" Next n Next i End With End Sub

bajiru
質問者

お礼

再度ありがとうございました!早速活用させてもらってます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

Sheet6に組み合わせ要素があり、Sheet7に組み合わせを出す。 Sub test03() k = 1 For i = 1 To 4 For j = 1 To 4 Worksheets("sheet7").Cells(k, "A") = _ Cells(i, "A") & "は" & Cells(j, "B") & "が好きですか" k = k + 1 Next j Next i End Sub

bajiru
質問者

お礼

ありがとうございました。参考にさせていただきます!

全文を見る
すると、全ての回答が全文表示されます。
回答No.4

とりあえず全ての組み合わせをC列に表示してみました。こういうことでしょうか? Sub test() x = Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row y = Cells(ActiveSheet.Rows.Count, 2).End(xlUp).Row For n = 1 To x For i = 1 To y z = z + 1 Cells(z, 3).Value = Cells(n, 1).Value & "は" & Cells(i, 2).Value & "が好きだと思いますか?" Next i Next n For i = 1 To y For n = 1 To x z = z + 1 Cells(z, 3).Value = Cells(i, 2).Value & "は" & Cells(n, 1).Value & "が好きだと思いますか?" Next n Next i End Sub

bajiru
質問者

補足

このようなことです!ご理解して頂きましてとても嬉しいです。 ちなみに,もっと具体的にセルC10から下に始まる単語と,セルF10から下に始まる単語の組み合わせの結果を別シートのセルC8から下に表示するにはどうすればよいですか?

全文を見る
すると、全ての回答が全文表示されます。
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.3

こういうのって、重複をどうするかで難易度が変わります。 重複しても良いなら。 Sheet1のA列とB列にキーワードがあるとして、Sheet2に書き込みです。 Sub Test() Dim i As Integer, j As Integer Dim cnt As Long, s As String Randomize For cnt = 1 To 100  With Worksheets("Sheet1")   i = Int(Rnd * .Range("A65536").End(xlUp).Row) + 1   j = Int(Rnd * .Range("A65536").End(xlUp).Row) + 1   s = .Range("A" & i).Value & "は" & _     .Range("B" & j).Value & "が好きだと思う?"   Worksheets("Sheet2").Range("A" & cnt) = s  End With Next cnt End Sub

bajiru
質問者

補足

すみませんでした。やはり説明が悪くて。ランダムに選ぶような難しいものではなく,総当たりの組み合わせの表示をできればいいなぁと思ったものです。

全文を見る
すると、全ての回答が全文表示されます。
  • SHJYOR
  • ベストアンサー率35% (7/20)
回答No.2

やられたいことが今ひとつはっきりわからないのですが... A列に   犬   猫   ねずみ B列に   バナナ   もも   ブドウ と入っていたとして、別シートのA列に   犬 は バナナ が好きだと思いますか?   犬 は もも が好きだと思いますか?   犬 は ブドウ が好きだと思いますか?   猫 は バナナ が好きだと思いますか?   猫 は もも が好きだと思いますか?   猫 は ブドウ が好きだと思いますか?   ねずみ は バナナ が好きだと思いますか?   ねずみ は もも が好きだと思いますか?   ねずみ は ブドウ が好きだと思いますか? と全ての組み合わせで出力されればいいのでしょうか? それでしたら、以下のような感じになるのでは? Sub test() Dim i As Integer Dim j As Integer Dim p As Integer Dim src As Worksheet Dim dst As Worksheet  Set src = Worksheets("Sheet1")  Set dst = Worksheets("Sheet2")  p = 1  For i = 1 To 999   If src.Range("A" & i).Value = "" Then Exit For   For j = 1 To 999    If src.Range("B" & j).Value = "" Then Exit For    dst.Range("A" & p).Value = src.Range("A" & i).Value & " は " & src.Range("B" & j).Value & " が好きだと思いますか?"    p = p + 1   Next j  Next i End Sub

bajiru
質問者

お礼

ありがとうございました。すばやい返答でとても嬉しかったです。参考にさせていただきます!

bajiru
質問者

補足

早速ありがとうございます!アンケート調査票を作りたいのですが,しょっちゅう組み合わせる為の言葉や数が変わるので,このようなことできないかなぁと思いまして。SHJYORさんのご回答のようなものをまさしく期待してました。 具体的なこと追加してしまいますが,セルC10から下に始まるものと,セルF10から下に始まるものの組み合わせを,別なシートのセルC8から下に表示させるような内容のもの教えて頂けますか?

全文を見る
すると、全ての回答が全文表示されます。
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

通常は乱数を発生させて、任意のセルを選択するようにプログラムします。

参考URL:
http://www2.cty-net.ne.jp/~hidenori/vba/vba22/
bajiru
質問者

補足

すみません。やはり説明が悪かったです。 やりたいことはアンケート調査の項目作りなんですが,乱数のような任意のセルの組み合わせではなく,A列,B列それぞれ何個記入されるかわからない言葉を全て順番に組み合わせて別のシートへ出力するようなものを考えてるのですが...。 よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excel2003 並び替えに関する質問 VBA初心者

    エクセルの並び替えにおいて質問させていただきます。  A列  B列  C列   D列 りんご  1  バナナ  4 バナナ  2  みかん  6 すいか  3  いちご  8 みかん  4  もも   3 いちご  5  すいか  2 ドリア  6  ぶどう  1 というものを  A列  B列  C列   D列 りんご  1   バナナ  2  バナナ  4 すいか  3  すいか  2 みかん  4  みかん  6 いちご  5  いちご  8 ドリア  6           もも   3         ぶどう  1 というようにA列にならってC,D列の項目を並び替えて、並び替えられないものは下に列挙させるようなやり方をVBAで組みたいのですが、まずはどうすればよいのかわかりません。 もし、これを見て答えられるようであれば、どなたか教えていただければ幸いです。 どうか宜しくお願いします。

  • Excel VBAで結合セルに連番を振っていくには?

    Microsoft Excel 2003での質問です。 表を作成しました。 結合セルが複数ある1列に(セル数はまちまち・複数の列には非結合)、連番を振っていく作業をしています。 これをVBAを使って自動化したいのです。 列に連番がすでに入力されている最終行の下のセル(つまりこれから連番が入る空白セル)を選択、 範囲指定し(セル数はまちまちなのでこれは手作業)、 セルを結合させるまではできたのですが、 この結合させたセルに、[(一つ上の結合セル)+(1)]の値を入力させるにはどうプログラムしたらよいでしょうか? わかりにくい説明で恐縮ですが、どなたかご教示ください。

  • ExcelでのVBAマクロについて

    質問させていただきます。 今現在、知人に設定していただいた一つのマクロを使って作業しています。 (そのマクロ自体は【選択したセル】と【直下のセル】のデータを「テキスト」として『前後のスペース』を削除し「セル内改行」で結合する。高さ調整後、1セル分上がる。というものです) 今までは1セルずつこれを使って結合し、セル内文章をまとめて一番上に持ち上げていました。しかし、今回私がやりたいのは1セルずつマクロを実行(ショートカットキーを使っていますが)するのが手間なので、5セル(上下方向にです)に対して一気に先ほどの既存マクロを適応する、という風にしたいのです。(選択セルと直下セルが結合されて選択セル内文章が増えるというやり方ですので、一番初めのポインタ位置は結合したいデータの下から二つ目でないといけません。その場合、この既存マクロを4回繰り返すマクロがほしいのです) 私自身、「記録」機能を使ったマクロしか組んだことがなかったのでVBAのほうをいじってみても知識不足でエラーばかり出てしまい、困ってしまいました。 とても説明がややこしく、分かりづらいとは思いますが、ご回答いただけると有り難いです。

  • ExcelのVBAについて教えて下さい

    今、日報の作成をしているのですが 1行目に「1」を入れると、C列の3行目~15行目までがねずみ色になって 休みを意味するように条件付書式を設定しています。 しかし、1を入力というのも不細工だと思い、そのセルの上に コマンドボタンをおいて、 それを押すと下のセルに1が入力されるマクロを作ろうと思ったのですが、 1を入力するまでは良いんですが、 今度同じボタンでもう一度押すと消える、 さらにもう一度押すと1が入力される、 なんていうマクロは組めますか? マクロの記録で、下記のような式は得たのですが つなぎ方等々、分からない事ばかりで出来ません。 どなたか教えて下さい。お願いします。 * * * * * * * * * * * * * * * * * * * * * * * * * * * * Private Sub CommandButton1_Click() Range("D1").Select ActiveCell.FormulaR1C1 = "1" Range("D1").Select Selection.ClearContents End Sub

  • エクセルVBAについて

    エクセルVBAについて 下にある、1行目に入力された数値の、選択したセルの数値を、B5セルに表示させるマクロなのですが、1行目が結合していると、うまくB5セルに表示できません。 Private Sub Worksheet_SelectionChange(ByVal Target As Range)  If Target.Count > 1 Then Exit Sub    '●複数セル選択は無視  If Target.Row <> 1 Then Exit Sub    '●1行目以外の選択は無視  If Target.Column > 6 Then Exit Sub   '●F列目以降の選択は無視  If Target.Value = "" Then Exit Sub   '●選択セルが未入力なら無視    Range("B5").Value = Target.Value End Sub このマクロで、結合しているセルをB5に表示させることはできますでしょうか? 1行目で選択するセルは、すべて2つのセルが結合しています。 よろしくお願いいたします。

  • このエクセル2003で、次のような事が出来ましたらご教授ください。

    このエクセル2003で、次のような事が出来ましたらご教授ください。 数字を入れたら、名前が出るようにしたいのですが、出来ますでしょうか? 例えば、8と入れたら下のセルに名前が出る、名前はまずいのでバナナ。2と入れたらリンゴと出る。5と入れたらブドウと出る。 数字を入力するのは、順番ではなく適当です。名前の数は71名です。 初心者の私には、むずかしいようでしたらあきらめます。 宜しくお願い致します。

  • 【VBA】マクロについて

    【VBA】マクロについて質問です。 マクロで複数のシートの特定のセル(A5(日付)、A7(社名)、B3(担当者)など)を別ブックのひとつのシートにまとめて、 日付 社名 担当者 シート1 A5 A7 B3 シート2 A5 A7 B3 シート3 A5 A7 B3 のように下へ下へ積み上げていくにはどうゆうマクロを組めばいいでしょうか。 同じ作業を複数のファイルで行わなければいけないため、マクロを組みたいのですが、よくわかりません>< ファイルによってシートの数が違うので、それにも対応すると有難いです。 どうぞよろしくお願いいたします。

  • エクセル VBA マクロについて

    初めまして。 以下のようなマクロを組みたいんですが可能でしょうか?  A     B     C    D    E    F 東京   足立区 みかん  10   5   50       葛飾区 みかん  20   3   60        港区  りんご  30   1   30 小計                       140 ( 空白行   ) 愛知  名古屋市 みかん  10   5   50      東海市    もも   10   5   50 小計                       100 上記のようなデーターシートがあります。 Dには数字が入ってるんですが、 ここに係数をかけたいんです。 たとえば、=10*1.07 とか (1)元の値に係数かける式をセルに入れるマクロはあるんでしょうか? (2)この係数を別シートのセルで入力したいんですが セルを参照できますか? (3)みかん、もも、りんごの列を検索して、  それに対応した係数かけるマクロはあるんでしょうか? 処理速度は、とくにはこだわりません。 ご指導おねがいいたします。

  • エクセルの入力について

    エクセルで下記のような事はできますか?マクロのマの字も知らない私でも簡単にできる方法があれば是非教えてください。 まずA1のセルをアクティブにすると犬、猫、鳥のどれを入力するか選べて、犬を選ぶとA2のセルにはポチと自動的に入り、猫を選ぶとA2はタマになり、鳥だと九ちゃんと入力される というような感じにしたいのですが・・・

  • エクセルマクロで結合されたセルをコピー

    こんばんは、エクセルで、結合されたセルを結合セル数の違うセルにマクロで貼り付けたいのですが、どのようにしたらよいでしょうか? 結合セル数が違ってもコピー貼り付けできるところとできないところがあるのですが、どうしてでしょうか? よろしくお願い致します!!!!!

FAXの再度プリントアウトの仕方
このQ&Aのポイント
  • ブラザー製品のMFC-J6973CDWを使用している際に、過去に送信や受信した書類を再度プリントアウトする方法について教えてください。
  • FAXの履歴を表示して再度プリントアウトする方法について詳しく教えてください。
  • MFC-J6973CDWのFAX機能を使って過去の送信履歴や受信履歴をプリントアウトする手順を教えてください。
回答を見る

専門家に質問してみよう