
No.4ベストアンサー
- 回答日時:
こんばんは
>まとめる
>空白を取り除いて1行にしたいのです
複数の列の値を繋げて1行にすると言う事・・改行とか要らない
各セルには改行コードが無いと仮定すると
4行目だけの例ですと
Dim r As Range, rng As Range
Dim st As String
Set rng = Range("A4:R4")
For Each r In rng
st = st & r.Text
Next
Dim trg As Range
Set trg = Range("T4")
trg = Replace(Replace(st, " ", ""), " ", "")
こんな感じで良いのかな・・・
書式とは?フォントの色だけですか・・
例えば
Dim n As Long, i As Long
n = 1
For Each r In rng
For i = 1 To Len(r.Text)
With trg.Characters(n, 1)
If .Text = " " Or .Text = " " Then n = n + 1
.Font.Color = r.Characters(i, 1).Font.Color
End With
n = n + 1
Next
Next
End Sub
文字数、範囲が大き(多)いと 処理時間かかりそう
おおお...
こういうやりかたもあるんだとすごく勉強になります
今回、別のやり方で解決しましたが
このやりかたは他の作業に流用できそうだし、とても参考になりました!
ありがとうございます!
No.6
- 回答日時:
#4 >書式とは?フォントの色だけですか・・例えば
確かめてみたら、でたらめでした。すみません
Dim r As Range, rng As Range
Dim st As String
Set rng = Range("A4:R4")
For Each r In rng
st = st & r.Text
Next
Dim trg As Range
Set trg = Range("T4")
trg.Clear
trg = Replace(Replace(st, " ", ""), " ", "")
Dim n As Long, i As Long
n = 1
For Each r In rng
For i = 1 To Len(r.Text)
If r.Characters(i, 1).Text = " " Or r.Characters(i, 1).Text = " " Then
n = n - 1
Else
trg.Characters(n, 1).Font.Color = r.Characters(i, 1).Font.Color
End If
n = n + 1
Next
Next
書式はフォントサイズとB(太字)です
作って頂いてありがとうございます!すごい!
そういう風に書式も指定できるんですね
初めて知りました
ありがとうございます!
No.5
- 回答日時:
>空白を取り除いて1行にしたいのです
もうちょい画像のセル範囲を少なくした例題があると良かったのですが。
老眼で見る限りでは、列単位でコピーし目的の列に順次書式変更なしで貼り付けていって最後に空白セルは消すって感じなのですかね?
No.3
- 回答日時:
単に、A~R列のセルにある文字を繋げたいのなら、concatenate関数で結合できますが、書式(文字色)は引き継がれません。
3行目のようにセル全体の文字色を赤にするのなら、その部分だけ選択して文字色を変える方が簡単です。
おそらく、意図しているのはA~Rのセルのいずれかまたは部分的に赤文字の部分の色を継承したいということでしょうか。
それができるとするなら、文字色を変える前後にマーカーになりうる記号をつけて、そのマーカーに囲まれた部分の文字色のパラメータを赤に変えるといったマクロを組むことになるのでしょうが、個別にやる方がカンタンではないかと(労多くして益なし)。
ありがとうございます
ネットには書式をコピーできるが毎回列の指定が必要なものと
指定は必要ないが、書式をコピーできないものがありました
大変ですが前者を使うしかないでしょうか、うむむ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAマクロ 決まっていない行を選択して別シートへ貼付け 4 2023/02/16 16:08
- Excel(エクセル) VBA 指定した列にある日時データから時間を削除する方法について 4 2022/04/14 11:17
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- Excel(エクセル) VBA 文字列変換と指定した列にある日時データから時間を削除する方法について 2 2022/04/14 15:23
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
- Visual Basic(VBA) エクセルVBAで『A列』に新規で数値を入力し『B列』から右方向の空白セルにその値を貼り付ける方法 4 2022/11/05 08:37
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Excel(エクセル) フォルダ階層が深いファイルの拡張子の一括変換 2 2022/12/23 18:40
- Excel(エクセル) 半角ハイフンを除いた重複に色を付ける数式について 5 2022/09/08 20:43
- Excel(エクセル) エクセルの表でダブりを解消する方法を、教えてください。 5 2023/04/12 12:11
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルVBAで複数列データを1列に配列替えしたい
Excel(エクセル)
-
複数の列の値を結合して別の列へ返す
Visual Basic(VBA)
-
文字列の結合を空白行まで実行
Visual Basic(VBA)
-
-
4
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
5
エクセルマクロ:複数列 重複があった場合、メッセージと印入れる方法
Excel(エクセル)
-
6
エクセルVBAで、複数セルのデータをひとつのセルに改行してまとめたいのですか・・・
Excel(エクセル)
-
7
VBA Cのセルが空白でなかったら、Aのセルに順番に数値を入力
Visual Basic(VBA)
-
8
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
9
VBAで、離れた複数の列に対して処理を施すには?
Visual Basic(VBA)
-
10
複数の列に入力されている文字を一列にまとめる。
Excel(エクセル)
-
11
重複するIDのデータを1行にまとめるvbaのコード
Access(アクセス)
-
12
VBA 別ブックからコピペしたいのですが、軽くしたいです
Visual Basic(VBA)
-
13
エクセルで複数列の検索をマクロで行いたい
Excel(エクセル)
-
14
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
-
15
ある範囲のセルから任意の値を検索して、その隣のセルの値を取得するという関数はありますか?
Excel(エクセル)
-
16
エクセルで長い行を5行ごとに1列にするには?
Excel(エクセル)
-
17
エクセルでコピー領域と貼り付け領域の形が違うエラー
Excel(エクセル)
-
18
VBAで特定の文字が入力されたセルを選択
Excel(エクセル)
-
19
【VBA】全ての複数シートから指定した列をコピー、新しいブックの1シートに抽出する
Visual Basic(VBA)
-
20
VBA データ(特定値)のある最終行を取得したい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのピボットテーブルの...
-
excel関数式の一部を太字にする
-
Excelの条件付き書式を崩された...
-
excelで選択範囲の反転をしたい...
-
Excel 書式を関数で判断。
-
エクセルで、書式は変えずに連...
-
EXCEL 表の書式のみ変更不可(...
-
Excel 条件付書式で土日の左・...
-
文字の色を変える関数を探して...
-
エクセルで重複データを行ごと...
-
見えているセルの数字だけの合...
-
Excel 条件付書式で二つの条件...
-
条件付き書式 A1,B1,C1の何れ...
-
Excel2007で、条件付き書式の一...
-
エクセルで2つのシートで重複し...
-
条件付き書式(色変更)は、予...
-
エクセルで、土日や祝祭日に色...
-
EXCELにて、整数と小数点を色分...
-
vlookupで見つかった先のセルの...
-
エクセルで「住所」を 住所1、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの条件付き書式を崩された...
-
excel関数式の一部を太字にする
-
エクセルのピボットテーブルの...
-
Excel 書式を関数で判断。
-
EXCEL 表の書式のみ変更不可(...
-
エクセルで重複データを行ごと...
-
excelで選択範囲の反転をしたい...
-
エクセルで、書式は変えずに連...
-
Excel 条件付書式で土日の左・...
-
Excel 条件付書式で二つの条件...
-
VBAでシート書式の自動変換を作...
-
エクセルで1年前の日付になった...
-
条件付き書式が選択できない?!
-
EXCELにて、整数と小数点を色分...
-
エクセルで複数列を1列にまと...
-
エクセル:一定以上の数値にな...
-
エクセルで2つのシートで重複し...
-
条件付き書式(色変更)は、予...
-
Excel2003 の条件付き書式、「...
-
指定した期限が近づくとセルの...
おすすめ情報
複数行→複数列でした。すみません。
画像のように書式をつけた列A~Rがあり、列Tに全ての列をまとめたいのです
沢山考えて下さってありがとうございます!
参考になるコードもあり、とても勉強になりました
今回の件については以下のコードで自己解決しました
親身になって考えてくださりありがとうございました!
Dim Last_Row As Long
Dim i As Long
Dim Target_Row As Long
'転記開始行
Target_Row = 1
'18列分ループ
For i = 1 To 18
'最終行を取得
Last_Row = Cells(Rows.Count, i).End(xlUp).Row
'コピーして貼り付け
Range(Cells(1, i), Cells(Last_Row, i)).Copy Cells(Target_Row, 20)
'転記開始行
Target_Row = Cells(Rows.Count, 20).End(xlUp).Row + 1
Next i
End Sub