Excel VBA質問箱 IV

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

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


5359 / 13644 ツリー ←次へ | 前へ→

【51309】大量データのセル値・フォント色・セル色の取得 鈴音 07/9/11(火) 14:32 質問[未読]
【51310】Re:大量データのセル値・フォント色・セル... Jaka 07/9/11(火) 15:02 発言[未読]
【51311】Re:大量データのセル値・フォント色・セル... neptune 07/9/11(火) 15:09 回答[未読]
【51317】Re:大量データのセル値・フォント色・セル... 多摩川 07/9/11(火) 18:44 発言[未読]

【51309】大量データのセル値・フォント色・セル色...
質問  鈴音  - 07/9/11(火) 14:32 -

引用なし
パスワード
   いつもお世話になっております。

現在、2つのExcelを比較するツールを作っています。
1シート毎、
1セルの値とフォント色とセル色を取得し配列に格納し比較しています。

データ量が少ない場合はLOOPをしながら1セルずつ配列に取得し
比較していて問題がないのですが大量データになると処理が遅くなりました。
そこで
 Dim rg1 As Range
 Set rg1 = ActiveWorkbook.Sheets("Sheet1").Range("a1:j1000")
を使用したいのですがセル値・フォント色・セル色の取得方法がわかりません。

お手数をかけますが教えてください。
よろしくお願いします。

【51310】Re:大量データのセル値・フォント色・セ...
発言  Jaka  - 07/9/11(火) 15:02 -

引用なし
パスワード
    > Set rg1 = ActiveWorkbook.Sheets("Sheet1").Range("a1:j1000")
これ、セル範囲を配列にセットしているだけだから、rg1の中を
1個1個見るのとセルを1個1個見るのと変わらないですよ。

前に試してみて、速度差がまちまちだったんでがっかりしたことあります。
どちらかというと、セルを1個1個比較した方が速かった回数が多かったと思います。

普通のセルを扱うのと同じで良いです。
MsgBox rg1(1, 2).Value     'これ→とおんなじ rg1.Cells(1, 2).value
MsgBox rg1(1, 2).Interior.ColorIndex

遅くなるのはしょうがないんじゃないかな。

【51311】Re:大量データのセル値・フォント色・セ...
回答  neptune  - 07/9/11(火) 15:09 -

引用なし
パスワード
   ▼鈴音 さん:
こんにちは
 
>を使用したいのですがセル値・フォント色・セル色の取得方法がわかりません。
rangeオブジェクトのHelpを全部見たら解ることですけど、こんな感じ?

Sub t()
Dim rg1 As Range
Dim rngBuf As Range
  Set rg1 = ActiveWorkbook.Sheets("Sheet1").Range("a1:j1000")
  For Each rngBuf In rg1
    Debug.Print "アドレス: " & rngBuf.Address
    Debug.Print "値: " & rngBuf.Value
    Debug.Print "文字のフォント: " & rngBuf.Characters.Font.Name
    Debug.Print "背景色: " & rngBuf.Interior.Color
  Next
End Sub

一応全部Helpで調べてくださいね。特にFont系は沢山あるようですから。

【51317】Re:大量データのセル値・フォント色・セ...
発言  多摩川  - 07/9/11(火) 18:44 -

引用なし
パスワード
   ▼鈴音 さん:
こんばんは

ScreenUpdatingプロパティ

Calculationプロパティ
も場合によって、速度アップには多少効果があると思います。

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