• 締切
  • 困ってます

Excel VB 書式設定

  • 質問No.92558
  • 閲覧数617
  • ありがとう数2
  • 回答数4

お礼率 39% (25/64)

あるセルから別のセルに書式を一気に転記したいのですが、現状ではfontstyle、interiorcolorindex、columnwidth、rowheightなどをひとつひとつ転記しています。
これらをまとめて、ひとつのプロパティとして取得し、そのまま別のセルに設定できないのでしょうか?

回答 (全4件)

  • 回答No.4

ベストアンサー率 65% (276/422)

どもども田吾作7です。

見てるかなー・・・見てねーだろうなー。
今7/9だもん。見てないよなー・・・

でも書いときます。

書式のコピーロジック

Dim NowSelectObj As Object '現在選択されているものを記憶する

Dim wkRangeA As Range 'コピー元
Dim wkRangeB As Range '貼り付け先

'現在選択されているものを記憶する
On Error Resume Next
Set NowSelectObj = Selection
On Error GoTo 0


'書式のコピー元を設定
Set wkRangeA = Range("A1") 'Cells(1, 1)でもいい
'書式の貼り付け先を設定
Set wkRangeB = Range("B1") 'Cells(1, 2)でもいい
'もし貼り付け先が複数存在する時は、RangeとUnionをヘルプで調べてください。

'コピーする
wkRangeA.Copy

'書式だけ貼り付ける(カーソルがwkRangeBに移動する)
wkRangeB.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

'コピーモードを解除する
Application.CutCopyMode = False

'カーソルが移動してしまうので、もとの位置に戻す
If Not (NowSelectObj Is Nothing) Then
NowSelectObj.Select
End If

'それぞれ開放
Set wkRangeA = Nothing
Set wkRangeB = Nothing
Set NowSelectObj = Nothing


ってな感じでしょうか?
これはエクセルの書式のコピーをそのまま行っていますので、セルの移動が行われています。一応 NowSelectObjにて、カーソルを元の位置に戻していますが、画面のちらつきが発生する恐れがあります。そのときには
プログラムの開始時にScreen.Updating = False
プログラムの終了時にScreen.Updating = True
を記述し、画面の更新を制御してやってください。

っていうか 見てるかなー・・・・

でわでわ
  • 回答No.3

ベストアンサー率 67% (869/1279)

他カテゴリのカテゴリマスター
独自のStylesコレクションを定義したらどうでしょうか。
  • 回答No.2

ベストアンサー率 21% (13/60)

マクロの記録を開始して形式を指定して貼り付けから書式を選べば使えるコードが生成されますよ。(知ってると思いますが。)
補足コメント
raly-raly

お礼率 39% (25/64)

もちろん知っていますし、参考になるかと思って既にやっています。
select-copy-paste以外の、直接的なやり方がないのか知りたかったのでこの質問をしました。

2件とも同じ回答(マクロの自動生成)が来るところをみると、もしかしてこれ以外に方法がない???
投稿日時:2001/06/19 22:41
  • 回答No.1

ベストアンサー率 58% (728/1234)

"マクロの記録"はご存知ですか?
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ