フィルタオプションの設定を利用する
Excelの一般機能であるフィルタオプションの設定を利用します。
フィルタオプションの設定では列見出しが必要ですので、仮の見出しを挿入して抽出後に削除しています。
配列の方法より短時間で処理できます。
コード例
Sub myAd()
Dim rngData As Range, rngC As Range
With Worksheets(“Sheet1″)
.Range(“A1″).Insert xlDown
.Range(“A1″).Value = “見出し”
Set rngData = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp))
Set rngC = Worksheets(“Sheet2″).Range(“E1″)
rngData.AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=rngC, _
Unique:=True
.Range(“A1″).Delete xlUp
End With
With Worksheets(“Sheet2″)
.Range(“E:E”).ClearContents
.Range(“E1″).Delete xlUp
End With
End Sub
データを配列に読み込んでFor~Nextで逐次チェックする方法
元のデータを配列(x)に読み込み、For~Nextで逐次チェックします。
配列でチェックしているため上の方法よりは短時間で処理できます。
コード例
Sub 配列()
Dim x, y
Dim myCnt As Long, myFlg As Boolean
Dim i As Long, j As Long
With Worksheets(“Sheet1″)
x = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp))
End With
ReDim y(1 To UBound(x), 1 To 1)
y(1, 1) = x(1, 1)
myCnt = 1
For i = LBound(x) To UBound(x)
myFlg = False
For j = 1 To myCnt
If x(i, 1) = y(j, 1) Then myFlg = True: Exit For
Next j
If myFlg = False Then myCnt = myCnt + 1: y(myCnt, 1) = x(i, 1)
Next i
With Worksheets(“Sheet2″).
Range(“C:C”).ClearContents
.Range(“C1″).Resize(UBound(y), 1) = y
End With
End Sub
For~Nextで逐次チェックする方法
もっとも基本的な方法で重複しているか否かを逐次調べ重複がなかったらSheet2へ追加していきます。
ここで書いている方法の中では最も時間がかかります。
コード例
Sub ループ()
Dim lastRow1 As Long, lastRow2 As Long
Dim i As Long, j As Long, myCnt As Long
With Worksheets(“Sheet2″)
.Range(“A:A”).ClearContents
.Range(“A1″) = Worksheets(“Sheet1″).Range(“A1″).Value
lastRow1 = Worksheets(“Sheet1″).Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lastRow1
myCnt = 0
lastRow2 = .Cells(Rows.Count, 1).End(xlUp).Row
For j = 1 To lastRow2
If .Cells(j, 1).Value = Worksheets(“Sheet1″).Cells(i, 1).Value Then
Exit For
Else
myCnt = myCnt + 1
End If
Next j
If myCnt = lastRow2 Then
.Cells(lastRow2 + 1, 1).Value = Worksheets(“Sheet1″).Cells(i, 1).Value
End If
Next i
End With
End Sub
ヘッダーとフッターのプロパティ
LeftHeader、CenterHeader、RightHeader、LeftFooter、CenterFooter、RightFooterを利用します。
コード例:各位置にA1~A6セルの値を設定する例です。
Sub myHeader1()
With ActiveSheet.PageSetup
.LeftHeader = Range(“A1″).Value
.CenterHeader = Range(“A2″).Value
.RightHeader = Range(“A3″).Value
.LeftFooter = Range(“A4″).Value
.CenterFooter = Range(“A5″).Value
.RightFooter = Range(“A6″).Value
End With
ActiveWindow.SelectedSheets.PrintPreview
End Sub
【注】一度設定すると、ファイルにその情報が記録されるため異なる位置のヘッダーやフッターの設定はクリアしてから設定をする必要があります。
上の例を試した後、左のヘッダーのみに日付を表示したいときは、他のヘッダー/フッターをクリアしてから設定します。
コード例
Sub myHeader2()
With ActiveSheet.PageSetup
.LeftHeader = “”
.CenterHeader = “”
.RightHeader = “”
.LeftFooter = “”
.CenterFooter = “”
.RightFooter = “”
.LeftHeader = “&D”
End With
ActiveWindow.SelectedSheets.PrintPreview
End Sub
ヘッダー/フッターの日付を和暦で表示したい
コード例
Sub myHeader3()
With ActiveSheet.PageSetup
.LeftHeader = “”
.CenterHeader = “”
.RightHeader = “”
.LeftFooter = “”
.CenterFooter = “”
.RightFooter = “”
.LeftHeader = Format(Date, “ggge年m月d日”)
End With
ActiveWindow.SelectedSheets.PrintPreview
End Sub
ヘッダーとフッターに指定できる書式コード
指定された書式コードを使うことで、ヘッダー/フッターに書式を設定できます。
書式コードの一覧
(例) 左ヘッダーにファイル名と和暦の日付をつなげて表示する例: .LeftHeader = “&F” & Format(Date, “ggge年m月d日”)
書式コードと内容
&L 文字列を左詰めにします
&C 文字列を中央揃えにします
&R 文字列を右詰めにします
&E 文字列に二重下線をつけます
&X 上付き文字にします
&Y 下付き文字にします
&B 文字列を太字にします
&I 文字列を斜体にします
&U 文字列に下線を付けます
&S 文字列に取り消し線を付けます
&D 現在の日付を表示します
&T 現在の時刻を表示します
&F ファイル名を表示します
&A シート名を表示します
&P ページ番号を表示します
&P+<数値> ページ番号に指定した[数値]を加えた値を表示します
&P-<数値> ページ番号から指定した[数値]を引いた値を表示します
&& 「&」(アンパサンド&) を表示します
& “<フォント名>” 指定したフォントで文字列を表示します
フォント名は、半角の二重引用符 (“) で囲みます
&nn 指定したフォント サイズ[nn]で文字を表示します。
nn は、2桁のポイント数で指定します
&N すべてのページ数を表示します
スタイルを適用する
スタイルを設定する範囲を選択します。
[ホーム]タブの[スタイル]グループにある[その他]をクリックします。
適用するスタイルをクリックすると適用されます。
このリストに適用するスタイルがない場合は「スタイル ウィンドウ」を利用します。
[ホーム]タブの[スタイル]グループにある[ダイアルぐボックスアクセスランチャー]をクリックします。
Word2003までの作業ウィンドウと似た、「スタイル ウィンドウ」が利用できます。
クイック スタイルに登録する
登録するスタイル(書式の組み合わせ)が設定されている文字列を選択します。
[ホーム]タブの[スタイル]グループにある[その他]→[選択範囲を新しいクイック スタイルとして保存]を実行します。
[書式から新しいスタイルを作成]ダイアログで登録する名前を入力します。
クイックスタイルに登録されました。
スタイルを変更する
変更するスタイルを右クリックし、[変更]を実行します。
[スタイルの変更]ダイアログで書式を変更します。
同じスタイルを設定している個所全てのスタイルが変更されます。
スタイル ウィンドウを利用する
[ホーム]タブの[スタイル]グループにある[ダイアルぐボックスアクセスランチャー]をクリックします。
Word2003までの作業ウィンドウと似た、「スタイル」ウィンドウが利用できます。
クイック スタイルに登録するには下のほうに配置してある「新しいスタイル」から実行します。
スタイルを変更するには[変更するスタイル]→[変更]を実行します。
スタイルを削除する
[ホーム]タブの[スタイル]グループにある[ダイアルぐボックスアクセスランチャー]をクリックします。
クイック スタイルに登録するには下のほうに配置してある「スタイルの管理」を実行します。
[スタイルの管理]ダイアログの[編集]タブで「編集するスタイルの選択で」スタイルを選択して[削除]を実行します。