Excel VBA質問箱 IV

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

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


54666 / 76738 ←次へ | 前へ→

【26858】VBA処理速度向上のアドバイス求む!
質問  yuki  - 05/7/21(木) 15:27 -

引用なし
パスワード
   処理速度向上につき、アドバイスを頂きたく、投稿致しました。

下記のロジックの改善点にお気づきの方は、どんなことでも良いので
ご教示頂けると幸いです。

※integer より long が良いのは学びました。

下記は、シートAにある値を、シートBの適切なセルに表示させるもので
シートAを参照する式を埋め込むことで、シートBに値をコピーしています。

入り組んでいて分かり辛いのですが、ループ、分岐、変数の使い方などが
キーになると思ったので、なるべくそのままのコードを記載しました。

◎実際の処理では、下記のようなロジックが10個くらい連なります。

【シートAの特徴】
CSVから読み込んだデータが貼り付いていて、各列、行に名前をつけています。
(例)列名 <10列分> _1 〜 _10 
   行名 <50行分> PHNYL1 〜 PHNYL50

【処理概要】
シートBの"HNY_INPUT_FLAG"と名前がついている列に'1'が入力されている行に
シートAの値を適宜セットしていく。

※シートBの"HNY_INPUT_FLAG"列+3の列に'1'が入力されている行数
=シートAの行数(ここでは50。)

-----------

Public Const INT_HNY_START_ROW As Integer = 5   
Public Const INT_HNY_END_ROW As Integer = 55

Dim intRow As Integer
Dim intInputFlagCol As Integer

  intInputFlagCol = Range("HNY_INPUT_FLAG").Column '入力可能な項目(行)フラグが設定されている列
  i = 1

  For intRow = INT_HNY_START_ROW To INT_HNY_END_ROW Step 1
  
   If Cells(intRow, intInputFlagCol + 3).Value = "1" Then  'iのカウントアップ用Ifブロック

    If Cells(intRow, intInputFlagCol).Value = "1" Then
    
      k = 10
      '前回値を保持するシートを参照する式をセット
      For j = 1 To 10
        Cells(intRow, INT_HNY_PRJSTART_COL - 1 + j).Formula _
        = "=PHNYL" & i & " _" & k
        
        k = k - 1
      Next
      
      '式ではなく値のみ表示するよう設定
      Range(Cells(intRow, INT_HNY_PRJSTART_COL), _
          Cells(intRow, INT_HNY_PRJSTART_COL + 9)).Copy
      Range(Cells(intRow, INT_HNY_PRJSTART_COL), _
          Cells(intRow, INT_HNY_PRJSTART_COL + 9)).PasteSpecial Paste:=xlValues
      Application.CutCopyMode = False
    End If
    
    i = i + 1
   End If
  Next

0 hits

【26858】VBA処理速度向上のアドバイス求む! yuki 05/7/21(木) 15:27 質問
【26859】Re:VBA処理速度向上のアドバイス求む! IROC 05/7/21(木) 15:51 回答
【26860】Re:VBA処理速度向上のアドバイス求む! yuki 05/7/21(木) 15:59 質問
【26861】Re:VBA処理速度向上のアドバイス求む! IROC 05/7/21(木) 16:51 回答
【26862】Re:VBA処理速度向上のアドバイス求む! yuki 05/7/21(木) 17:01 お礼
【26863】Re:VBA処理速度向上のアドバイス求む! Jaka 05/7/21(木) 17:34 発言
【26864】Re:VBA処理速度向上のアドバイス求む! yuki 05/7/21(木) 17:49 お礼
【27007】Re:VBA処理速度向上のアドバイス求む! yuki 05/7/26(火) 13:41 お礼

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