例えば、A1に「ABC」、A2に「DEF」と書いてあって、A3にこれらを結合して「ABCDEF」という文字列を作る場合は以下のマクロでできます。しかし、A1, A2の文字の色はコピーされません。A1が赤色であってもA3には全て黒色でコピーされてしまいます。
Sub con()
Range("A3").Value = Range("A1").Text + Range("A2").Text
End Sub
これを文字の色やボールド、斜体、アンダーラインなども含めてコピーする方法を教えてください。よろしくお願いします。
No.5ベストアンサー
- 回答日時:
こんにちは。
これは、コピーされる側個々のセルは、全体単位で、ペーストされる側は、個別の書式でプロパティが写されます。
Sub CopyFont1()
Dim a As Range, b As Range
Dim c As Variant, k As Integer
Set a = Range("A1")
Set b = Range("A2")
With Range("A3")
.Value = a.Value & b.Value
For Each c In Array(a, b)
With .Characters(k + 1, Len(c.Value) + k + 1).Font
.Bold = c.Font.Bold
.Color = c.Font.Color
.Italic = c.Font.Italic
.Name = c.Font.Name
.Size = c.Font.Size
.Underline = c.Font.Underline
End With
k = k + Len(c.Value)
Next
End With
End Sub
回答ありがとうございます。求めていた結果が得られると同時に、マクロの書き方としてもたいへん参考になりました。セルに書き込んだ文章の重要部分を赤にしたりボールドにしているのですが、それらを集めてまとめる処理を行うために、この質問をさせていただきました。
No.4
- 回答日時:
(1)+や&は文字列の「値」としての面だけを注目するものです。
Textプロパティも同じです。わかっておられると思いますが、原理的なことなので、まずしっかり認識すべきです。
(2)書式を含めて、移してくれるのは、Copyですが、A1セルとA2セルのどちらを優先するのかが決まっていません、決められません。
ですから質問には答えようがない。
(3)さらに、色は黒以外を優先、斜体はイタリック優先、アンダーラインはありを優先という条件を考えているとしたら、Copyにはその条件はつけられません。A1優先なら、A1の書式をA3にコピーすればよいように思います。これはマクロの記録でも見てまねて、1、2行ですむでしょう。
(4)人間には常識的な(3)で触れた、優先の条件を、VBAの中に書きこめばできることですが、シコシコの世界で、面倒くさくて、今までそういう必要性を経験したことがないせいもあって、書く気がしない(略)。
黒色以外の優先関係、フォントの優先関係など細かい点はどうするのという問題もあります。
No.3
- 回答日時:
試しに実行したところ以下のようなコードが得られましたが参考になりませんか?
A1の書式がA3にコピーされます。
Range("A1").Select
Selection.Copy
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
No.2
- 回答日時:
>ちょっと考えるとコピーする文字の属性を一文字づつ新しい文字列に設定するVBAを書く必要があるかに思えます。
これよりもっと簡単な方法はないのでしょうか?私も、まとめてうまくやる方法が無いように思います。
fontStyleで標準・ボールド・斜体がまとめてできるのが救い。
---------------------------------------------------
Public Sub cat()
Dim s1 As Range, s2 As Range
Dim d As Range
Dim i, j
Set s1 = Range("A1")
Set s2 = Range("A2")
Set d = Range("A3")
d.Value = s1.Text & s2.Text
For i = 1 To Len(s1.Text)
d.Characters(i, 1).Font.Color = s1.Characters(i, 1).Font.Color
d.Characters(i, 1).Font.FontStyle = s1.Characters(i, 1).Font.FontStyle
d.Characters(i, 1).Font.Underline = s1.Characters(i, 1).Font.Underline
Next
i = Len(s1.Text)
For j = 1 To Len(s2.Text)
d.Characters(i + j, 1).Font.Color = s2.Characters(j, 1).Font.Color
d.Characters(i + j, 1).Font.FontStyle = s2.Characters(j, 1).Font.FontStyle
d.Characters(i + j, 1).Font.Underline = s2.Characters(j, 1).Font.Underline
Next j
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【VBA】A列にある連続したデータの1番下に文字列を入力したい 1 2023/01/28 04:40
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
- Visual Basic(VBA) 他のシートからコピーする下記マクロで貼付け位置をWorksheets(1).Range("A3")の 8 2023/01/30 18:48
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Visual Basic(VBA) エクセル VBA 条件付き書式 簡略化したい 2 2022/06/02 17:46
- Excel(エクセル) Excleマクロ セル値の代入と文字列の結合について 3 2022/10/05 16:47
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Visual Basic(VBA) Excel VBA メール作成について 本文の中にExcel でコピーした図を上下に2つ 貼り付けを 2 2023/06/14 01:48
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
エクセルの書式を保持したまま結合するVBA
Excel(エクセル)
-
EXCEL VBA 文中の書式ごと複写するには
Visual Basic(VBA)
-
-
4
CONCATENATEで結合した文字列の一部の文字色を変更するには
Excel(エクセル)
-
5
excel関数式の一部を太字にする
その他(Microsoft Office)
-
6
VBA 書式設定を保持したままセル内の文字を追記
Excel(エクセル)
-
7
エクセルで文字列の結合したときのフォントの大きさを指定する。
Excel(エクセル)
-
8
Excelで数式内の文字色を一部だけ変更したい
Excel(エクセル)
-
9
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
-
10
エクセルの色も=イコールできますか?
Windows Me・NT・2000
-
11
Excelのセルの色指定をVBAから配列を用いて効率的に行う方法はあり
Visual Basic(VBA)
-
12
エクセル マクロ オートフィルの終点の指定について
Excel(エクセル)
-
13
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
14
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
15
Excel マクロ VBA プロシージャが大きすぎます のエラー対処方法
Visual Basic(VBA)
-
16
エクセルの表示形式を保ったまま、セルに値を代入するには?
Visual Basic(VBA)
-
17
エクセルのセル内の余白の設定って出来るのでしょうか?
Excel(エクセル)
-
18
Excel 関数を使ってデータと一緒にその書式もコピーしたいのですが・・・
Excel(エクセル)
-
19
エクセルでマクロにてセル色と文字を他シートのセルへコピーしたい
その他(コンピューター・テクノロジー)
-
20
「Columns(A:C")」の列文字を数字にして表記したい"
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セックスする度に胸が大きくな...
-
僕の心が狭いのでしょうか…?セ...
-
オナ禁中はセックスしてもいい...
-
恋人とセフレの違いはなんです...
-
週1ペースで会うカップルでデー...
-
セックスについて。 彼が正常位...
-
初めて泊まりにきてくれる彼女...
-
彼女が噛んできます。 歯型がつ...
-
一番多くて週に何回セックスし...
-
30代前半男性の性欲
-
未成年同士でラブホに行った際...
-
マッチングアプリで知り合った...
-
セックスする時なぜ声出るの
-
彼氏が私の性格も見た目も褒め...
-
付き合って1ヶ月でヤった後別れ...
-
セックス前にAV
-
おじさんになってから若い女性に
-
貞操観念の低い女性について
-
Excel VBA : 文字列の属性も含...
-
VBAでワークシートを変数にする...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
セックスする度に胸が大きくな...
-
週1ペースで会うカップルでデー...
-
セックスについて。 彼が正常位...
-
恋人とセフレの違いはなんです...
-
彼女とのセックスに新鮮味を感...
-
初めて泊まりにきてくれる彼女...
-
彼女が噛んできます。 歯型がつ...
-
おじさんになってから若い女性に
-
30代前半男性の性欲
-
セックスの2回目が無理
-
5年くらいSEXしてなかったから...
-
性欲と、人を好きになるって別...
-
セックス前にAV
-
ドM 私はとてもドMで、彼と付き...
-
彼氏が私の性格も見た目も褒め...
-
女子高生です。 寝起きの後に必...
-
一番多くて週に何回セックスし...
-
胸が揺れるくらい激しいセック...
-
彼女いない歴年齢は恥ずかしい...
-
動物みたいなセックス、交尾だ...
おすすめ情報