No.2ベストアンサー
- 回答日時:
>そもそもこんなこと可能なんでしょうか。
可能だと言えば可能ですが、質問者さんはどんなイメージを持っているのでしょうか。たぶん結合する範囲を選択して、それで、ボタンを押して、連結した時に、色などの書式が反映されているということになるのでしょうか。しょせん、マクロ自体は、人のやることをコード化したものだと考えると、無理なことは無理なのです。
しかし、例えば、書式のみで成立する日付などは、テキスト化しないといけません。そういう所までを、是非とも、ご自身でも考えていただきたいと、個人的には思うのです。
もうここらへんまで来ると、Excelの仕様に関わってくるので、それはもう、私個人としては、Q&Aという意義がなくなってしまうと思っています。
以下は、一例として考えてみました。(フォントのプロパティをすべて入れてはいません)
これは、また、その後に、QATのボタンにするのが一般的かとは思います。出来上がったものをコピーにまでは入れられますが、手動でペーストにすることになります。結合した所を元に戻すには、元に戻すマクロが必要になります。
'//
Private Type FontForm
'色・書体・フォント・フォントサイズ・下線・取り消し線
iColor As Long
bBold As Boolean
sFontName As String
iFontSize As Single
bUnderline As Boolean
bStrike As Boolean
End Type
Sub formatMerge()
Dim Rng As Range
Dim mFormat() As FontForm
Dim c As Range
Dim i As Long, j As Long
Dim mTxt
If TypeName(Selection) <> "Range" Then Exit Sub
Set Rng = Selection
If Rng.Cells.Count = 1 Then Exit Sub
If Rng.MergeCells Then
Rng.MergeCells = False
Exit Sub
End If
ReDim mFormat(Rng.Cells.Count - 1)
ReDim mTxt(Rng.Cells.Count - 1)
For Each c In Rng.Cells
mTxt(i) = Trim(c.Text)
With mFormat(i)
.bBold = c.Font.Bold
.iColor = c.Font.Color
.iFontSize = c.Font.Size
End With
i = i + 1
Next c
Rng.ClearContents
Rng.ClearFormats
Rng.Merge
With Rng
.Cells(1).Value = Join(mTxt, "")
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlVAlignTop
.WrapText = False
.Orientation = 0
.AddIndent = False
j = 1
For i = 0 To UBound(mTxt)
With .Characters(j, Len(mTxt(i))).Font
.Color = mFormat(i).iColor
.Size = mFormat(i).iFontSize
.Bold = mFormat(i).bBold
End With
j = j + Len(mTxt(i))
Next i
Rng(1).MergeArea.Copy
End With
End Sub
ご提示いただいたサンプルコードを参考に、なんとか実現する事が出来そうです。
> 結合する範囲を選択して、それで、ボタンを押して、連結した時に、色などの書式が反映されているということになるのでしょうか。
そのとおりです。
難しかったですが、実現のめどは立ちました。
※Charactersを使うと処理速度が異常に遅くなるようですが、致し方ないですね・・
出来る限り高速化を考えますが、望みは薄そうですね。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ハマっている「お菓子」を教えて!
この世には、おいしいお菓子がありすぎて……。 次何を食べたらいいか迷っています。 みなさんが今、ハマっている「お菓子」を教えてください!
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
メモのコツを教えてください!
メモを取るのが苦手です。 急いでメモすると内容がごちゃごちゃになってしまったり、ひどいときには全く読めない時もあります。
-
昨日見た夢を教えて下さい
たまにすごいドラマチックな夢見ること、ありませんか? 起きてからも妙に記憶に残っているような、そんな夢。
-
「お昼の放送」の思い出
小学校から中学校、ところによっては高校まで お昼休みに校内放送で、放送委員が音楽とかおしゃべりとか流してましたよね。 最近は自分でもラジオができるようになって、そのクオリティもすごいことになっていると聞きます。
-
EXCEL VBA 文中の書式ごと複写するには
Visual Basic(VBA)
-
VBAで色の付いているセルの行削除
Excel(エクセル)
-
色つき行の一括削除は?
Word(ワード)
-
-
4
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
5
取り消し線が入った文字を削除する処理を速くしたい(VBA)
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
条件付書式で「=#N/A」に色を付...
-
E列のセルに数値が入れば(空白...
-
エクセルの枠の中の文字が青文...
-
エクセルで特定の数字等を表示...
-
Excel にて条件付き書式の色に...
-
条件付き書式で、結果が1行ずれる
-
Excelの条件付き書式にて空白セ...
-
ピボットテーブルオプション「...
-
エクセルで1以上は全て1にするには
-
条件付き書式で太罫線を引く方法
-
エクセルでアクティブなセルの...
-
セル結合させてるときの 条件...
-
Excel 条件付書式 今日より3日...
-
【エクセル】今日の日付に赤枠...
-
【Excel】 #N/Aの場合の「条件...
-
【エクセル】シフトで○が6個以...
-
Excelについて あるセルに文字...
-
エクセル 条件付き書式で色をつ...
-
エクセルでシート参照する場合...
-
エクセルで日付を入力したらカ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
条件付書式で「=#N/A」に色を付...
-
E列のセルに数値が入れば(空白...
-
条件付き書式で、結果が1行ずれる
-
Excel にて条件付き書式の色に...
-
エクセルの枠の中の文字が青文...
-
エクセルで特定の数字等を表示...
-
Excelの条件付き書式にて空白セ...
-
ピボットテーブルオプション「...
-
条件付き書式で太罫線を引く方法
-
互換性チェック
-
セル結合させてるときの 条件...
-
エクセルで1以上は全て1にするには
-
エクセル 条件付き書式で色をつ...
-
【Excel】条件付き書式で 0では...
-
【エクセル】シフトで○が6個以...
-
エクエルで隣のセルの文字が赤...
-
Excelについて あるセルに文字...
-
エクセル内で複数の文字(50個ぐ...
-
一つ上のセルと同じセルに色を...
-
セルの値が空白じゃないなら色...
おすすめ情報