すぐマク Excel VBA Board

116214
Excel VBA FAQ 掲示板
画像クリックで拡大可能。レスのついた質問は削除しない。丸投げしない。
名前
件名
メッセージ
画像
メールアドレス
URL
文字色
編集/削除キー (半角英数字のみで4~8文字)
プレビューする (投稿前に、内容をプレビューして確認できます)

貼り付け行の変更ループ - 苦学生

2015/11/02 (Mon) 15:39:44

質問失礼いたします。

最近VBAの勉強を始めたのですが
sheet1~sheet3までのQ31~V45までのセルの値を”まとめ”というシートに
縦に並ぶようにコピーし
次にsheet4~sheet6までのQ31~V45までのセルの値を”まとめ”というシートに
先ほどコピーしたデータがある列の隣の列にコピーし...をn回繰り返すような
つまり、シート三つごとのデータを縦に並べ、コピーしたデータで3×nの行列が作成されるような
VBAのコードを教えていただきたいです・


よろしくお願いします。

掲示板閉鎖のお知らせ - 永井善王

2014/07/03 (Thu) 07:58:15

この掲示板の管理人の永井善王です。
2000年9月15日の開設以来104169アクセスがありましたが、昨年末に最後のご利用があったなりで、どうやら役割を終えたようです。
まもなく閉鎖する予定ですので、ご了承ください。ありがとうございました。

ご質問はご遠慮なく! - 永井善王

2014/05/08 (Thu) 17:31:44

この掲示板の管理人の永井です。
ご質問にはできるだけ早くお答えします。
画像もアップできます。ご遠慮なくどうぞ。

無題 - 宙

2013/12/06 (Fri) 08:19:32

リンク切れの報告です。

FAQ カレンダーコントロールをユーザーフォームで使う - Excel VBA Macro Collection
http://www.max.hi-ho.ne.jp/happy/YNxv9837.html

の文中記入にある2つのリンク先です。

・もう少し詳しい説明が 「カレンダーコントロールのプロパティ一覧」 にあります。

同じ文章が2箇所ですね。

以上、報告でした。

ちなみに私のオフィスVerではカレンダーコントロールは使えないですが。

リンク切れ修正 終わりました - 永井善王 URL

2013/12/08 (Sun) 06:25:49

宙さま
お知らせいただき、ありがとうございます。
取り急ぎ修正しておきました。
今後もよろしくお願いします。

リンク先間違い - 宙 URL

2013/09/06 (Fri) 10:49:00

いつもこのようなコメントで恐縮です

http://www.max.hi-ho.ne.jp/happy/YNxv20.html
の「Macro 開始終了 ・ 基本型 Contents」のリンクで

 18.* 指定ドライブへ切り替え
 19.* 指定フォルダーへ切り替え
 20.* 拡張子を指定する
 21.* パスを組む
 22.* タスクマンを起動する

がおかしいようです。

Re: リンク先間違い - 永井善王 URL

2013/09/06 (Fri) 18:54:59

宙さま
いつも貴重な情報をお知らせいただき、ありがとうございます。
Contentsのページは、いわゆる「もくじ」ページになりますが、少々分かりにくい表示があり申し訳ありません。
ご指摘いただいた、
18.* 指定ドライブへ切り替え
19.* 指定フォルダーへ切り替え
20.* 拡張子を指定する
21.* パスを組む
には、他の項目(たとえば1~17) にはない*(アスタリスク) が付けてありまして、マクロというほどではない1行のコードであることを意味しています。
たとえば、『18.* 指定ドライブへ切り替え』をクリックすると、「1) 開始処理」というマクロが表示されますが、その中に「指定ドライブへ切り替え」というコメントが付いたコードが1行ありますので、それを参考にしてくださいという主旨です。
しかし、このたび、「≪マクロ中にあるコード≫」という中見出しを付けて、より分りやすくしました。(該当9ページ)

また、『22.* タスクマンを起動する』は、かつて、taskman.exeを起動するコードを公開していたことがありましたが、すでに削除済みです。よって、「開始・終了 Contents」のページからも削除するべきものでしたので、訂正しておきました。
では、今後も、よろしくお願いします。

ExcelのVBA作成でバブルソート - こう

2013/08/31 (Sat) 16:06:53

Excelのマクロでバブルソートを作成したいです。C言語の参考書とか見たんですけど、文字とか作り方が変わってくるので分かりませんでした。
バブルソートを使って最大から最小まで並び替えたいです。

Re: ExcelのVBA作成でバブルソート - 永井善王 URL

2013/08/31 (Sat) 19:28:11

苦労して作成したとしても、Excel標準機能のソートに勝てるスピードが出せるとは思えませんが、なぜ、そうしたいのですか?

Re: Re: ExcelのVBA作成でバブルソート - こう

2013/09/01 (Sun) 14:31:57

プログラムに埋め込むためです。
お願いします。

Re: ExcelのVBA作成でバブルソート - 永井善王 URL

2013/09/01 (Sun) 18:46:35

主旨が分らないのでせっかくご照会したのに、『プログラムに埋め込むため』とわかりきったご返事、がっかりです。が、
右図のようなアクティブシート(クリックで拡大可能)のセル範囲A1:A8のデータを、降順に並べ替えるマクロを自動記録すると下記のように出来上がります。
Range("A1:A8").Sort Key1:=Range("A2"), Order1:=xlDescending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
SortMethod:=xlPinYin, DataOption1:=xlSortNormal
こうしたコードを埋め込むだけで完成するのに、なぜいけないのですか?
おそらくスピードが劣るであろう自作のバブルソート、苦労して作成するのは何故ですか?

無題 - 遊芳

2013/08/08 (Thu) 20:45:43

お忙しい中、丁寧なステップ回答ありがとうございます。
ゆっくり・・読み解いていきます。

又、伺う事もあるかと思いますが、丸投げはしたくない・・!と、思っています。
解けた時の快感も十分理解しいます。
カンバります。

Re: マクロで挿入した行にセルのコピーをするには - 永井善王 URL

2013/08/11 (Sun) 08:50:38

お盆休みに入りましたか。
前回の回答に若干加筆して下記ページを作成しました。よろしければ、ご覧ください。
http://www.max.hi-ho.ne.jp/happy/YNxv9c7284.html
元データを別シートへコピーしてA列の値の変わり目に空白行を挿入等するには?

P.S. スレッドは当初質問と別にしないで、できるだけ連続使用して下さるよう、お願いします。

マクロで挿入した行にセルのコピーをするには 遊芳

2013/07/31 (Wed) 09:36:19

B列の値が変わったら空白行を挿入、合わせて一つ下の行のセル情報をコピーする・・マクロに仕上げたいのですが・・

元データ
A    
    
box-01
box-01
box-01
box-01
box-01
box-01
box-01

box-02
box-02
box-02
box-02
box-03
box-03
box-03
box-03
box-03
box-03

希望結果

A    
box-01  
box-01
box-01
box-01
box-01
box-01
box-01
box-01
box-02
box-02
box-02
box-02
box-02
box-03
box-03
box-03
box-03
box-03
box-03
box-03

よろしくご指導願います。
こちらのサイトで回答に行ごとの説明文があったのがとっても参考になり、昨日も一つ応用問題が解け助かりました。

Re: マクロで挿入した行にセルのコピーをするには - 永井善王 URL

2013/08/01 (Thu) 09:03:52

『元データ』と『希望結果』を比べると右図(クリックで拡大可能)のようになりますが、もう少し補足説明していただけますか。
1. 元データのB列の値はどうなっているのですか?
2. 元データのA8セルは空白セルですが、正しいですか?
3. 『元データ』と『希望結果』は同一シートですか?
4. 空白行はどこへ挿入したいのですか?
5. 『一つ下の行のセル情報』とは、右図でいうと、どのセルですか?

Re: マクロで挿入した行にセルのコピーをするには 遊芳

2013/08/02 (Fri) 00:13:07

早速の質問、ありがとうございました。

再度質問を纏めたら最初の質問とかなり違っていました。
1~5の質問の答えになるか自信はありませんが、元データと欲しい結果データをgifファイルにしました。

gifファイルを添付?致しますが、質問も慣れていなくて申し訳ありません。

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

Re: マクロで挿入した行にセルのコピーをするには - 永井善王 URL

2013/08/08 (Thu) 08:33:30

回答が遅くなってしまったので、もう出来てしまいましたか? (別スレッドの解決に大きな工数が必要でした。)
ご自身でマクロをどこまで作れたかが不明ですので、纏め直されたgifファイルに沿って順次進めてみます。

1. 「元データ」を「結果」シートへコピーする … 自動記録すると下記のようなマクロができます。
Sub Macro1()
Sheets("結果").Select
Cells.Select
Selection.Clear
Sheets("元データ").Select
Cells.Select
Selection.Copy
Sheets("結果").Select
Range("A1").Select
ActiveSheet.Paste
End Sub

2. 上記マクロを整理してスッキリさせると下記のようになります。
Sub Macro1s()
Sheets("結果").Cells.Clear
Sheets("元データ").Cells.Copy
Sheets("結果").Select
Range("A1").Select
ActiveSheet.Paste
End Sub

3. 「結果」シートのデータの最下行の行番号を取得するコード
最下端 = Range("A" & Rows.Count).End(xlUp).Row

4. 最下行から2行目まで反復処理するコードを 3. に組み合わせる
最下行 = Range("A" & Rows.Count).End(xlUp).Row
For 行 = 最下行 To 2 Step -1
MsgBox 行
Next

5. A列の値が変わったかの判断機能を 4. に組み込む
Sub 最下行から2行目まで反復するコード()
最下行 = Range("A" & Rows.Count).End(xlUp).Row
For 行 = 最下行 To 2 Step -1
If Range("A" & 行).Value <> Range("A" & 行 - 1).Value Then
MsgBox 行
End If
Next
End Sub

6. 行を挿入するコードを 5. に追加する
Sub 最下行から2行目まで反復して行を挿入するコード()
最下行 = Range("A" & Rows.Count).End(xlUp).Row
For 行 = 最下行 To 2 Step -1
If Range("A" & 行).Value <> Range("A" & 行 - 1).Value Then
MsgBox 行
Rows(行).Insert Shift:=xlDown
End If
Next
End Sub

回答はここまでとします。(この掲示板では丸投げ質問ご遠慮です。)
1行目に行を挿入するコードと、挿入した直後にB列のセルへ直下行のA列のセルの値をコピーするコードは、この
HPの他のページを参考にしたりしてご自分で考え、完成させてください。
どうしても分からないときは、再質問してください。ではガンバ!!
P.S. マクロができたらアップしてください。

カスタム検索、検索文字が文字化けしヒットしなくなりました - 宙

2013/08/01 (Thu) 09:23:11

「URL変更のお知らせ!」
以後なのか、カスタム検索で全くヒットしません。
検索後の新規別ウィンドウが開きますが、検索文字が文字化けしています。
当方の環境のせいなのかも知れませんがご参考までに。

Windows7 IE8.07

永井様のすぐマクページでは、IEの「表示」「エンコード」は「UNICODE(UTF-8)」でロックされています。
他のヤフーなどでは変更できます。

以下のは「全角」と検索した時の結果です

http://www.google.co.jp/cse?cx=partner-pub-7680309557131970%3A7413601972&ie=Shift_JIS&q=%E5%85%A8%E8%A7%92&sa=%E6%A4%9C%E7%B4%A2

Shift JISって出てるのが気になります。

不具合情報提供のお礼と当面の回避策につきまして - 永井善王 URL

2013/08/01 (Thu) 17:47:03

宙さま
今回も超貴重な情報をお知らせいただき、本当にありがとうございます。仰るとおり『ヒットせず、検索文字化け』してしまいますね。

当面の回避策としまして、右図にあります「すぐマク検索」ページ (クリックで拡大可能) をご利用いただきますよう、お願いします。
URLは http://www.max.hi-ho.ne.jp/happy/YNxv894.html ですが、 [Home > Service > すぐマク検索] で辿って行けます。

なお、不具合の原因と今後の対応は、長くなりますが下記のとおりです。
今年5月に行ったURL変更に合わせて「すぐマク」全ページをリニューアルしました。その際、各ページ上部に設けているGoogleカスタム検索ボックスも新デザインにしました。が、動作確認が不十分でした。すみません。
本日、ただちに原因究明を始めて、もう3時間たちましたが解決できません。早急にGoogle社の仕様を再々確認致しますが、修正作業は全400ページ以上に及ぶかも知れません。
つきましては、当分の間、上記の回避策に依っていただきますよう、お願いします。

不具合修正と対応につきまして - 永井善王 URL

2013/08/02 (Fri) 10:02:54

原因が判明しました。やはり、全400ページ以上の修正となります。順次修正して、できたページは下記「What's New!」ページの「お知らせ」欄に掲載します。
http://www.max.hi-ho.ne.jp/happy/YNxv6.html
なお、未修正のページにつきましては、上記回避策にてご対応ください。ご不便をお掛けしますが、よろしくお願いします。

【原因】 Googleカスタム検索エンジンの設定が不適当でした。
文字化け …… [エンコード]を[Unicode(UTF-8)]とすべきが[日本語(Shift_JIS)]になっていた
ヒットしない … [検索の対象]が[http://www.max.hi-ho.ne.jp/happy/]になっていなかった

P.S. これらスレッドの内容は、What's New! ページにも掲載しました。ご了承ください。
http://www.max.hi-ho.ne.jp/happy/YNxv6.html

マクロ(VBA)作成なんですが・・・ - 1nkm

2013/07/02 (Tue) 13:52:57

子番|注文者氏名|品名 |単価|数量
00| 氏名01| | |
01| 氏名01|品名01| 100| 1
02| 氏名01|品名02| 200| 1
03| 氏名01|品名03| 300| 1
00| 氏名02| | |
01| 氏名02|品名05| 500| 1
02| 氏名02|品名06| 600| 1
00| 氏名03| | |
01| 氏名03|品名01| 100| 1
02| 氏名03|品名02| 200| 1
03| 氏名03|品名05| 500| 1
04| 氏名03|品名08| 800| 1
00| 氏名04| | |
01| 氏名04|品名08| 800| 1
02| 氏名04|品名10|1000| 1
00| 氏名05| | |
01| 氏名05|品名01| 100| 1
02| 氏名05|品名05| 500| 1
03| 氏名05|品名07| 700| 1
00| 氏名06| | |
01| 氏名06|品名01| 100| 1
02| 氏名06|品名02| 200| 1
03| 氏名06|品名03| 300| 1
04| 氏名06|品名04| 400| 1
05| 氏名06|品名05| 500| 1
06| 氏名06|品名06| 600| 1
07| 氏名06|品名07| 700| 1
08| 氏名06|品名08| 800| 1
09| 氏名06|品名09| 900| 1
10| 氏名06|品名10|1000| 1
11| 氏名06|品名11|1100| 1

上記のデータを

氏名 |商品名1|単価|数量|商品名2|単価|数量|商品名3|単価|数量|商品名4|単価|数量|商品名5|単価|数量|商品名6|単価|数量|商品名7|単価|数量|商品名8|単価|数量|商品名9|単価|数量|商品名10|単価|数量|商品名11|単価|数量|
氏名01|品名01 | 100| 1|品名02 | 200| 1|品名03 | 300| 1| | | | | | | | | | | | | | | | | | | | | | | | |
氏名02|品名05 | 500| 1|品名06 | 600| 1| | | | | | | | | | | | | | | | | | | | | | | | | | | |
氏名03|品名01 | 100| 1|品名02 | 200| 1|品名05 | 500| 1|品名08 | 800| 1| | | | | | | | | | | | | | | | | | | | | |
氏名04|品名08 | 800| 1|品名10 |1000| 1| | | | | | | | | | | | | | | | | | | | | | | | | | | |
氏名05|品名01 | 100| 1|品名05 | 500| 1|品名07 | 700| 1| | | | | | | | | | | | | | | | | | | | | | | | |
氏名06|品名01 | 100| 1|品名02 | 200| 1|品名03 | 300| 1|品名04 | 400| 1|品名05 | 500| 1|品名06 | 600| 1|品名07 | 700| 1|品名08 | 800| 1|品名09 | 900| 1|品名10 |1000| 1|品名11 |1100| 1|

このようにできるマクロを作りたいのですが、勉強不足でうまくできません。
Excelのバージョンは2010です。
わかる方がいらっしゃいましたら御教授お願い申し上げますm(__)m

Re: マクロ(VBA)作成なんですが・・・ - 永井善王 URL

2013/07/03 (Wed) 11:00:08

下記ページをご覧ください。
http://www.max.hi-ho.ne.jp/happy/YNxv9c729.html
注文データを顧客名ごとで1行にまとめるには?


Copyright © 1999- FC2, inc All Rights Reserved.