エクセルをスマートに使おう
■VBA
VBA基本(VBAって何?[=「マクロ」?])
■関数一覧
COUNT関数 ... 数値/日付/時刻が入っているセルを数える
COUNTA関数 ... 値が入っているセルを数える
COUNTIF関数 ... 特定の文字が含まれているか?
- 特定の文字が含まれているか? ...「=IF(COUNTIF(B3,"*県*")=1,"○","✕")」
MOD(数値、除数)... 余りを求める
関連HP
■TIPS
フィルターを使いこなそう!
- 何も考えずにフィルタした場合は、「その文字を含む」データを抽出する。しかし、実はワイルドカードが使える
- 「田中」... "田中"を含むデータを抽出(※1)
- 「*田中*」... "田中"を含むデータを抽出(※1と同じ結果になる)
- 「田中*」... "田中"で始まるデータを抽出
- 「*田中」... "田中"で終わるデータを抽出
- 「?田?」... "3文字の名前で、2文字目が田"のデータを抽出
- 「*」や「?」のエスケープは「~(チルダ)」を使う
----------
(書式)
- セル範囲.AutoFilter Filter := 何列目, Criteria1:="抽出文字列"
(使用例)
- Range("B2").AutoFilter Field:=2, Criterila1:="田中" ...セル内が"田中"を抽出
- Range("B2").AutoFilter Field:=2, Criterila1:="田中*" ...セル内が"田中xxx"を抽出
- Range("B2").AutoFilter Field:=2, Criterila1:="*田中" ...セル内が"xxx田中"を抽出
- Range("B2").AutoFilter Field:=2, Criterila1:="*田中*" ...セル内が"x田中x"を抽出
- Range("B2").AutoFilter 2, "田中" ...短縮した書き方
(複数条件)
Sub 抽出1()
Range("B4").AutoFilter _
2, _
"*" & Range("A1") & "*", _
xlAnd, _
"*" & Range("A2") & "*"
End Sub
----------
フィルタ抽出時のコピペ
- フィルタされた状態で表の連続セルをコピーした時は、表示されていない行のデータはコピーされないので全く問題無し
- フィルタされた状態で「ctrl + enter」で連続セルにデータを一括入力した時は、表示されていない行にはデータが入力されないので全く問題無し
- セル1個を「ctrl + c」でコピーしたものを、フィルタされた状態の連続セルに「ctrl + v」(書式付き)でペーストした時は、表示されていない行にデータはペーストされないので問題無し
- セル1個を「ctrl + c」でコピーしたものを、フィルタされた状態の連続セルに「ctrl + v」(値のみ)でペーストした時は、表示されていない行にデータがペーストされるので問題有り。しかし、ペーストする前に「可視セルのみ選択」しておけば表示されていない行にはデータがコピーされないので全く問題無し
- 連続したセルを「ctrl + c」でコピーしたものを、フィルタされた状態の連続セルに「ctrl + v」(書式付き)でペーストした時は、表示されていない行にデータがペーストされるので問題有り
- 連続したセルを「ctrl + c」でコピーしたものを、フィルタされた状態の連続セルに「ctrl + v」(値のみ)でペーストした時は、表示されていない行にデータがペーストされるので問題有り
-
全ての図形を選択するには?
- (方法1)マウスで図形一つを選択後に「Ctrl+a」で選択できる
- (方法2)ジャンプ画面のセル選択でオブジェクトを選択する
ジャンプ画面の活用(条件付き書式/データの入力規則/アクティブ列との相違)
- 条件付き書式の設定違いは、一見では見つける事ができない
- データ入力規則の設定違いは、一見では見つける事ができない
- 計算式の設定違いは、一見では見つける事ができない
計算式中の参照元を変更できる「カラーリファレンス」
選択している“セル”や“行・列”を見やすくハイライト(強調)
- シート内の全てのセルに対して条件付き書式を設定する。「=CELL("row")=ROW()」(選択した行)
- ThisWorkbookにコードを追加する Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Application.ScreenUpdating = True End Sub
セルの表示形式「ユーザ定義」
- 「@」... セルの値を文字列としてそのまま表示する
- 文字列を付加するには「二重引用符(”)」で囲み「"文字列"」とする。連結演算子の「&」は不要。
- 円記号(¥)、プラス(+)、マイナス(-)、カッコなどの記号は「二重引用符(”)」で囲まなくてもよい。囲まなくてもよい記号は次のとおり。
[ \ ]...円記号
[ $ ]...ドル記号
[ + ]...正符号
[ ( ]...左かっこ
[ : ]...コロン
[ ^ ]...キャレット
[ ' ]...アポストロフィ
[ { ]...左中かっこ
[ < ]...小なり記号
[ = ]...等号
[ - ]...負符号
[ / ]...スラッシュ記号
[ ) ]...右かっこ
[ & ]...アンパサンド
[ ~ ]...チルダ
[ } ]...右中かっこ
[ > ]...大なり記号
[ ]...スペース文字
- 「@」をそのまま表示するには、「"@"」または「!@」とする。びっくりマーク(!)をそのまま表示するときは「!!」とする。(「!」は書式記号文字をエスケープする)
- アスタリスクと半角スペースの組み合わせ(* )でスペースの連続を表すので、左端にあれば右揃え、右端にあれば左揃え、途中にあれば左右に分けた両端揃えを表す
- 日付の書式
yyyy/mm/dd...2021/03/01
yyyy"年"mm"月"dd"日"(aaa)...2021/03/01(月)
yyyy"年"mm"月"dd"日"(aaaa)...2021/03/01(月曜日)
■参考HP