Home Authors Posts by best

401 ポスト 0 コメント

企業研修講師派遣のBESTグループ
出張パソコン教室ITスクール
webコンサルティングスクール
パソコンの家庭教師BEST

フィルタオプションの設定を利用する

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 すべてのページ数を表示します
 

0 6122

スタイルを適用する

スタイルを設定する範囲を選択します。
[ホーム]タブの[スタイル]グループにある[その他]をクリックします。

適用するスタイルをクリックすると適用されます。

このリストに適用するスタイルがない場合は「スタイル ウィンドウ」を利用します。
[ホーム]タブの[スタイル]グループにある[ダイアルぐボックスアクセスランチャー]をクリックします。
Word2003までの作業ウィンドウと似た、「スタイル ウィンドウ」が利用できます。

クイック スタイルに登録する

登録するスタイル(書式の組み合わせ)が設定されている文字列を選択します。
[ホーム]タブの[スタイル]グループにある[その他]→[選択範囲を新しいクイック スタイルとして保存]を実行します。
[書式から新しいスタイルを作成]ダイアログで登録する名前を入力します。

クイックスタイルに登録されました。

スタイルを変更する

変更するスタイルを右クリックし、[変更]を実行します。

[スタイルの変更]ダイアログで書式を変更します。

同じスタイルを設定している個所全てのスタイルが変更されます。

スタイル ウィンドウを利用する

[ホーム]タブの[スタイル]グループにある[ダイアルぐボックスアクセスランチャー]をクリックします。
Word2003までの作業ウィンドウと似た、「スタイル」ウィンドウが利用できます。

クイック スタイルに登録するには下のほうに配置してある「新しいスタイル」から実行します。

スタイルを変更するには[変更するスタイル]→[変更]を実行します。

スタイルを削除する

[ホーム]タブの[スタイル]グループにある[ダイアルぐボックスアクセスランチャー]をクリックします。
クイック スタイルに登録するには下のほうに配置してある「スタイルの管理」を実行します。

[スタイルの管理]ダイアログの[編集]タブで「編集するスタイルの選択で」スタイルを選択して[削除]を実行します。