2.基本形
    ここではセルに書き込んだ内容を読み込んで、
    加工して書き込むという例を実際の構文で説明します。
    下記の文をモジュールシートに書き込むと実行できます。
    [']はコメントです、VBAの中にあっても実行されません。
    意図的に途中の値を表示する文を入れておき、
    チェックの時にだけ'をはずして使ったりします。
 
    解説の部分には>のマークを入れました。
     

'>行の頭の方に説明をいれる。
 
' 重複行にマークするマクロ
'     ポイント:セル位置の取り出し、セルの内容の取り出し、セルへの記入
' マクロ記録日 : 1996/4/21  ユーザー名 : かおる
'[注意!]
'     実行前に
'     開始位置を選択しておくこと。
'     重複行が連続して並ぶようにソート(並べ替え)しておく。
'
'     選択されているセルの右側に1列挿入し、
'     前の行と同じデータがセットされている場合、
'     その行の横に"*"のマークを記入します。
'     この列でソートすると、一番先頭に並びます。
'
Sub 重複行マーク() '>VBAプログラムの呼び出す時の名前です。
'
'
'>変数を整数型に宣言する。他の型の入力をエラーではじくこともできます。
'>整数Integerにすれば、処理のスピードアップ、メモリの節約となる。
'>精度を上げたい時、倍精度。Dim A, B, C As Double
      Dim cnt1, colm1, colm2, row1, row2 As Integer
 
'現在のセルのプロパティ(位置データ)取り出し
'>    選択された開始位置の行と列番号を得ることが出来ます。
    colm1 = ActiveCell.Column '列
    row1 = ActiveCell.Row   '行
 
'隣の列を指定
    colm2 = colm1 + 1
    
'セル選択
    Cells(row1, colm2).Activate
'>   参考:Cells(row1, colm2).Select
'>     SelectはActivateと同じ結果が得られる 。
'
'   現在のセルの右側に列を追加する。
    Selection.EntireColumn.Insert  '列挿入
    Selection.ColumnWidth = 3.25  '巾を決める
    
    
'初期値の設定、
'>繰り返す場合には必ず先頭で初期値を入れておきます。
'>習慣にしましょう。別のプログラムで引用されたりした時、値が残る時があります。
    cnt1 = 0
 
line000:
 
'繰り返し 
 '>例.Do While cnt1<=20  〜 Loop 間でcnt1=21で終了
 '>他にもFor〜Next、If〜Goto〜Endifなどで繰り返すことが出来ます。
 '>下の場合は空欄が2行あったら終了する。Exit Doで抜け出す。
    Do
        row2 = row1 + 1 '次の行番号
 
'データの取り出し
        data1 = Cells(row1, colm1).Formula  
    '>セルに入っているデータがdata1と定義されます。
        '    ynmsg = msgBox(data1, , "値の表示")
    '>実行途中で値を確認したい時に'をはずして使います。
    '>メッセージとして出てきます。
 
On Error GoTo lastline 
 '>エラーがあった場合など、終了する。値に信頼が高い場合は不要です。
 '>最後のほうにlastlineというジャンプする行き先を:をつけて記入しておきます。
 
'次のデータの取り出し
        data2 = Cells(row2, colm1).Formula   
        '    ynmsg = msgBox(data2, , "値の表示")
            
            If (data1 = "" And data2 = "") Then Exit Do   
    '>空欄が2行あったら終了する。
    '>ループ回数を指定していない場合は、必ず抜ける条件を設定します。
    '>安全のために100回とか限界値をいれたり、エラーを検出する方法もあります。
        '>   If (data2 = "EOF") Then Exit Do : 'EOFの文字が出たら終了させる場合
        
    '同じ内容のセルがあったら、その最初の行の右側に"*"を記入する。
           If data1 = data2 Then Cells(row2, colm2).Formula = "*": cnt1 = cnt1 + 1
    '>Formulaは取り出すだけでなく、書き込みにも使用できます。
    '> :コロンは、次の行を続ける場合に使います。
    '>一行が長い場合は_アンダーバーで続けます。
  
           row1 = row2 '行送りされているrow2 = row1 + 1
           
    Loop 'Doの終了位置、セットで必要。
 
'     コメントを & でつなぐ時は前後にスペースを付けないとエラーになります。
        ynmsg = MsgBox(("重複行が " & cnt1 & "行ありました。"), , "行数の表示")
 
 
lastline: 'エラー処理などで終わらせる位置
 
End Sub  '終了
 
 

  はじめに1.まずは作ってみよう/2.基本形/3.簡単な検索