Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7501 / 13645 ツリー ←次へ | 前へ→

【38710】背景色のコピー ひろ 06/6/8(木) 20:48 質問[未読]
【38713】Re:背景色のコピー ponpon 06/6/8(木) 21:40 発言[未読]
【38714】Re:背景色のコピー ひろ 06/6/8(木) 21:48 発言[未読]
【38716】Re:背景色のコピー Kein 06/6/8(木) 21:59 発言[未読]
【38717】Re:背景色のコピー P 06/6/8(木) 22:18 発言[未読]
【38720】Re:背景色のコピー ひろ 06/6/8(木) 23:11 発言[未読]
【38723】Re:背景色のコピー Kein 06/6/8(木) 23:41 回答[未読]
【38724】Re:背景色のコピー 漂流民 06/6/8(木) 23:45 発言[未読]
【38726】Re:背景色のコピー 漂流民 06/6/8(木) 23:52 発言[未読]
【38783】Re:背景色のコピー ひろ 06/6/9(金) 22:30 お礼[未読]

【38710】背景色のコピー
質問  ひろ  - 06/6/8(木) 20:48 -

引用なし
パスワード
   初めて質問いたします。
ExcelのVBAで
ある列(仮にA列)の背景色を
一度変数か何かに保存し、
別の列(仮にB列)に同じ色を出したいと考えています。

ちなみに、対象をすべての行(65536行)と
したいので、ループでまわすと、遅くなりました。

Dim a as Range
Set a = Range("A:A")
Range("B:B").Interior.ColorIndex = a.Interior.ColorIndex

のようなループをまわさずに
実現できない物でしょうか?
ちなみに、上記コードではうまくいきませんでした。

ご教授お願いいたします。

【38713】Re:背景色のコピー
発言  ponpon  - 06/6/8(木) 21:40 -

引用なし
パスワード
   こんばんは。
回答でなくてすみません。

>ちなみに、対象をすべての行(65536行)としたいので、

どうしてでしょうか?最終行までデータがあるのでしょうか?
そうでなければ、無駄だと思うのですが、何か深いわけでもあるのでしょうか?

【38714】Re:背景色のコピー
発言  ひろ  - 06/6/8(木) 21:48 -

引用なし
パスワード
   理想は最終行まで何ですが、
無理と言う事であれば、
行数を決めてしまおうと考えています。
自分では、
出来る?出来ない?の判断に乏しかったため、
質問させていただきました。

【38716】Re:背景色のコピー
発言  Kein  - 06/6/8(木) 21:59 -

引用なし
パスワード
   Range("B:B").Interior.ColorIndex = Range("A1").Interior.ColorIndex

で、良いのでは ?

【38717】Re:背景色のコピー
発言  P  - 06/6/8(木) 22:18 -

引用なし
パスワード
   ▼ひろ さん

今晩は。
ある列(仮にA列)の背景色を
一度変数か何かに保存し、
別の列(仮にB列)に同じ色を出したいと考えています。


VBAで無いとダメですか・・・
保存になるかわかりませんが、ON/OFFの切り替えでするようなことではダメですか?
例えばB列の1〜65536を選択して条件付き書式設定で
「=$A$1=TRUE」として、塗りつぶし色指定とします。
フォームからチェックボックスでA1にコントロールの書式設定します。
チェックボックスにチェックを入れると、1〜65536行目まで一瞬にして色塗りが
出来ますが・・・

【38720】Re:背景色のコピー
発言  ひろ  - 06/6/8(木) 23:11 -

引用なし
パスワード
   keinさん
回答ありがとうございます。
なかなか惜しい回答ですが、
keinさんのソースだと、
A1セルの背景色をB列に描画となってしまいます。
実際、A1には赤、A5には黄色、とあった場合、
B1に赤、B5に黄色としたい次第です。

Range("B:B").Interior.ColorIndex = Range("A:A").Interior.ColorIndex
これが動けば問題ないのですが、
これでは駄目でした・・・

pさん
申し訳ありませんが、
今回の質問はシステムの一部分で
そこからいろいろ手を加える予定なので、
関数では無理なので、ごめんなさい。

【38723】Re:背景色のコピー
回答  Kein  - 06/6/8(木) 23:41 -

引用なし
パスワード
   あー・・そーいうことですか。
なら、色を着けた範囲が分かればもっと処理方法の幅が広がりますが、
とりあえず書式のみをコピーする方法で

Range("A:A").Copy
Range("B1").PasteSpecial xlPasteFormats
Application.CutCopyMode = False

というのは、どうでしょーか ?

【38724】Re:背景色のコピー
発言  漂流民  - 06/6/8(木) 23:45 -

引用なし
パスワード
   ▼ひろ さん:
これは?

Dim a As Range
Set a = Range("A:A")

'処理
  
a.Copy: Columns("B:B").PasteSpecial Paste:=xlFormats
Application.CutCopyMode = False

【38726】Re:背景色のコピー
発言  漂流民  - 06/6/8(木) 23:52 -

引用なし
パスワード
   Keinさん

失礼、かぶりました。

【38783】Re:背景色のコピー
お礼  ひろ  - 06/6/9(金) 22:30 -

引用なし
パスワード
   keinさん、漂流民さん
回答ありがとうございました。

copyメソッドの使用も考えてはいるのですが、
実はあまり使用したくないとわがままな考えが・・・

でも、Copyメソッドで実現は可能なようなので、
他にいい案が出ない限りはこれでいこうと思います。

お礼が遅くなり自分のログを探すのにも苦労してました・・
お付き合いいただき、本当に大変ありがうございました。

7501 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free