- ベストアンサー
VBA マトリクス 全パターン
VBAで以下のことを実現したいです。 以下のエクセルがあります。 A B C 1 a b c 2 d e f 3 g h i このマトリクスの全パターンを別のシートに表示したいです。 表示結果 abc abf abi aec aef aei ・ ・ ・ ghi VBAで以上のことを実現したいですが、ご教授お願いいたします。
- shenyanhe
- お礼率62% (18/29)
- Visual Basic
- 回答数2
- ありがとう数1
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
今晩は。出来る限り分かりやすいコーディングをしてみました。 Sub マトリクス() シート2の行 = 1 For 行1 = 1 To 3 For 行2 = 1 To 3 For 行3 = 1 To 3 Sheets(2).Cells(シート2の行, 1) = Sheets(1).Cells(行1, 1) & Sheets(1).Cells(行2, 2) & Sheets(1).Cells(行3, 3) シート2の行 = シート2の行 + 1 Next Next Next End Sub ↑「行1,行2,行3」 はそれぞれSheets(1)(左から1番目にあるシート)の行番号で、 「シート2の行」はSheets(2)(左から2番目にあるシート)の行番号です。 「Sheets(2).Cells(シート2の行, 1)」 に 「Sheets(1).Cells(行1, 1)」の文字と 「Sheets(1).Cells(行2, 2)」の文字と 「Sheets(1).Cells(行3, 3)」の文字を組み合わせた物を記入させています。 あとその記入をする度に「シート2の行」に1を加えています。 VBAの勉強どうぞ頑張って^^b
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17068)
>マトリクスの全パターン とは何のこと。3文字の組み合わせというべきか。 -- こんな問題は、VBAの問題として質問しているが、組み合わせ・順列の問題で、ただエクセルのシートに、元データがあるというだけ。 自分でどういうロジックで組み合わせや並べたらよいか考えること。 プログラムを知らなくても、考えられる事項だ。 またVBAの勉強としては、実務には余り役立たない勉強とおもう。 例えば配列 D1(1)~D(9)のデータがあるとして、どうしたら良いか考えましたか。問題を丸投げでは無いか。 配列に入れるところまでは ーー Sub test01() Dim d(9) k = 1 For i = 1 To 3 For j = 1 To 3 d(k) = Cells(i, j) k = k + 1 Next j Next i '--確認 For i = 1 To 9 MsgBox d(i) Next i End Sub 基本的な考えは 1文字目固定+2文字目固定(B)+3文字目9種変化 その次にBの部分を9種(残りは8種)変j化 終わればAの部分を9種変化 結局繰り回しの3ネストで良いのでは。 同じ文字があればどうするか。 下記ではダメか考えること。 Sub test01() For i = 1 To 9 For j = 1 To 9 For k = 1 To 9 MsgBox d(i) & d(j) & d(k) Next k Next j Next i End Sub ーーー >別のシートに表示したいです 初心者はまずドイツシートの別列に出す練習をすること。 その後別シートに出すなら Workshees(”Sheet2").Cells(i,j)=XXXのようなことを勉強のこと。
関連するQ&A
- Excel:順列のパターンを入れ替えて配置したい
表を見やすいように、パターンを入れ替えて配置したいと思っています。 具体的にいって ABC ABC ABC ↓ A B C A B C A B C と入れ替えるにはどうしたらいいんでしょうか?
- ベストアンサー
- オフィス系ソフト
- 高校教科書の問題
正六角形の三つの頂点を結んでできる三角形は何個あるか。 という問題なのですが。 答えは6C3=20通り となっています。 が 各頂点をABCDEFとして網羅してみると、、 ABC ABD ABE ABF ACB ACD ACE ACF ADB ADC ADE ADF AEB AEC AED AEF AFB AFC AFD AFE の20個の6C3なんですが たとえば ABCとACB、ABDとADBなどはつくられる三角形はまったく同じものだと思うのです。 自分的には重複してると思うのですが 文部省認定の教科書が間違っているということはありえるのでしょうか。 それともこの問題文の (正六角形の(3つの頂点)を結んでできる(三角形)は何個あるか。) この意味はABCとACBは異なった頂点からつくられる異なった三角形ということでしょうか?
- ベストアンサー
- 数学・算数
- マトリックスの積と行列式の積
X=ABCでX,A,B,Cはすべてマトリックスとします。サフィックスで表示するならば、 X(i,j)=A(i,m)B(m,n)C(n,j) ということかと思いますが。 この場合、 det(X)=det(A)det(B)det(C)になるとのことですが、簡単に証明できるでしょうか。線形代数の教科書を見れば必ず載っていると思うのですが、これは何も見ないで出来なくちゃと思って考え込んでいます。 X=ABの場合だけ証明できたらあとは何回積があっても同じかとは思いますが。行列式なので小行列などを用いて考えるのだろうと思いますが、パッと思いつきません。よろしくお願いします。
- 締切済み
- 数学・算数
- Excel(VBA)マトリクスの解体方法について
VBAで、以下のようなマクロを作成したいのですが、どのように作成したら良いのか検討がつきません。 どのようにすれば良いか、ご教授いただけたらと思います。 (過去の質問No.1488981を参考に記入させていただきます) (1)下記のように、縦横のマトリクス表にデータが入力されている。 A B C ・・ 1 X Y Z 2 a ○ × ○ 3 b × ○ ○ 4 c ○ ○ ○ (2)これを別シートに【"○"のついたデータのみ】縦に3列にデータを並べるように処理する。 左列には"項番"(1~)、中列には"行データ"、右列には"列データ" 1 a X 2 a Z 3 b Y 4 b Z ・ ・ ・ (3)列データと行データの数は不定で、一番右下となるセルまで、処理を繰り返すかたちにする。(空白セルが10個以上になる等の条件で) 以上のような条件です。ご回答よろしくお願い致します。
- ベストアンサー
- Visual Basic
- VBAで2の乗数のテストパターンを作成したい
2の乗数のテストパターンを作成したいのですが、どのように作成すればいいのか いまいちわからないので皆さん教えてください。御願いします。 例として2の3乗のパターンを作成したい場合 1パターン目 a=true b=true c=true 2パターン目 a=true b=false c=false 3パターン目 a=false b=true c=false 4パターン目 a=false b=false c=true 5パターン目 a=true b=false c=true 6パターン目 a=true b=true c=false 7パターン目 a=false b=true c=true 8パターン目 a=false b=false c=false といった具合に作りたいのですが、for文やif文をどういう具合に使えばいいか いまいちピンと来ないので、どなたかヒントでもいいので2の乗数のテストパターンの 作成の仕方を教えてくださいよろしく御願いいたいます
- 締切済み
- Visual Basic
- Excelでのリンク機能関数
シート1が以下のようにあったとします。 A B 1 No.1 abc 2 No.2 def 3 No.3 ghi 4 No.4 jkl シート2で、A1に「No.1」と記入するとB1に「abc」と表示したいのです。 A B 1 No.1 abc 2 No.2 def 3 No.3 ghi 4 No.4 jkl ↑ ↑ 手動 自動表示 このように出来る関数はありますか? また、使い方のサンプルなどもあればありがたいです。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルで元データを残しながらコピー
エクセル2007で複数の行にまたがってある複数のデータを楽に一つの行にまとめたい。 例 A1 abc B2 def A3 ghi C4 jkl 以下省略 このB行とC行をA行に全てまとめて移動したいのですがどのようにすればいいでしょうか。 したいこと A1 abc A2 def A3 ghi A4 jkl 以下略
- ベストアンサー
- オフィス系ソフト
- Excel VBA 組み合わせパターン
A1~A5 に、順に 「あ」「い」「う」「え」「お」が入っています。 B1に「3」を入れたとき C1以降、各セル1文字ずつで、 あああ ああい ああう …(略) おおえ おおお といった具合に表示させたいのです。 VBAで簡単にできるでしょうか。 ※A列のデータ数は変動します。
- ベストアンサー
- その他MS Office製品
- エクセルVBAによるマトリクス表の縦配列
エクセルVBAで以下のような処理を行うプログラムを作成したいのですが、 シロウトなんで、なかなかスマートに作れません。 どのようにすればいいかご教示いただけたら有り難いです。 (1)下記のように、縦横のマトリクス表にデータが入力されている。 A B C ・・ 1 2 3 ・ ・ (2)これを別シートに縦に2列にデータを並べるように処理する。 左列には"列項目&行項目"、右列には該当するデータをセットする。 A1 A1のデータ A2 A2のデータ A3 A3のデータ ・ ・ B1 B1のデータ ・ ・ ・ ・ (3)尚、列項目(A.B.C...)と行項目(1.2.3...)の項目数は不定で、セルが空白になるまで、 処理を繰り返すかたちにする。 以上のような条件ですが、よろしくお願い致します。
- ベストアンサー
- Visual Basic
お礼
ご指摘ありがとうございます。いろいろ勉強します。