Excel VBA質問箱 IV

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

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


9587 / 76732 ←次へ | 前へ→

【72706】Re:コードを短くしたい
発言  UO3  - 12/9/7(金) 16:55 -

引用なし
パスワード
   ▼マリモ さん:

以下のような簡素化もできます。

  Range("C1").Select
  ActiveCell.FormulaR1C1 = "0"
  Range("D1").Select
  ActiveCell.FormulaR1C1 = "1"
  Range("C1:D1").Select
  Selection.AutoFill Destination:=Range("C1:DS1"), Type:=xlFillDefault

    ↓

  Range("C1").Value = 0
  Range("D1").Value = 1
  Range("C1:D1").AutoFill Destination:=Range("C1:DS1"), Type:=xlFillDefault

    ↓

  Range("C1") = 0
  Range("C1").Resize(, 121).DataSeries


  Range("A1").Select
  ActiveCell.FormulaR1C1 = "code"
  Range("B1").Select
  ActiveCell.FormulaR1C1 = "cyomei"
  Range("C1").Select
  ActiveCell.FormulaR1C1 = "sex"
  Range("D1").Select
  ActiveCell.FormulaR1C1 = "age"
  Range("E1").Select
  ActiveCell.FormulaR1C1 = "pop"

   ↓

  Range("A1").Value = "code"
  Range("B1").Value = "cyomei"
  Range("C1").Value = "sex"
  Range("D1").Value = "age"
  Range("E1").Value = "pop"

   ↓

  Range("A1:E1").Value = Array("code", "cyomei", "sex", "age", "pop")

また、簡素化といえるかどうか、実際のコード実行数はかわらないというか、むしろ増えますが
変換数が今回のような3種類ではなく、多い場合には有効かも。

  Cells.Select
  Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
  Selection.Replace What:="男", Replacement:="m", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
  Selection.Replace What:="女", Replacement:="f", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False

   ↓

まず、変数定義

  Dim aryCvt1 As Variant
  Dim aryCvt2 As Variant
  Dim idx As Long

で、実行コードを
  
  aryCvt1 = arrat(" ", "男", , "女")
  aryCvt2 = arrat("", "m", "f")
  
  For idx = LBound(aryCvt1) To UBound(aryCvt1)
    Cells.Replace What:=aryct1(idx), Replacement:=aryct2(idx), LookAt:=xlPart, _
      SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
      ReplaceFormat:=False
  Next

0 hits

【72700】コードを短くしたい マリモ 12/9/7(金) 13:00 質問
【72702】Re:コードを短くしたい UO3 12/9/7(金) 16:07 発言
【72703】Re:コードを短くしたい Yuki 12/9/7(金) 16:09 発言
【72704】Re:コードを短くしたい Yuki 12/9/7(金) 16:14 発言
【72705】Re:コードを短くしたい UO3 12/9/7(金) 16:21 発言
【72706】Re:コードを短くしたい UO3 12/9/7(金) 16:55 発言
【72707】Re:コードを短くしたい UO3 12/9/7(金) 17:17 発言
【72718】Re:コードを短くしたい UO3 12/9/7(金) 21:48 発言
【72728】Re:コードを短くしたい マリモ 12/9/10(月) 10:42 お礼

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