{"text_format":"1","workbook":"xlsx","n_sheets":9,"sheets":["選択画面","フォルダリスト","ワークシート関数リスト","関数カテゴリー","記入例集","カテゴリー名","ファイル名一覧","シート名一覧","QRコード用URL"],"not_rendered":{"charts":0,"images":11,"macros":1,"external_links":0,"defined_names":2,"comments":0,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":0,"cells_raw":0,"read":"whole","date_system":"1900"}

{"sheet":"選択画面","index":0,"n_rows":0,"n_cols":0,"rows_kept":0,"cut":false,"hidden":false,"merged":[]}

{"sheet":"フォルダリスト","index":1,"n_rows":2,"n_cols":3,"rows_kept":2,"cut":false,"hidden":true,"merged":[]}
["コピー先フォルダ",null,"コピー元ブック"]
[null,null,"C:\\Users\\taaam\\OneDrive - 合同会社　L.O.A vacation\\ビジネス\\60_メンタエクセル講座発売\\セミマスタープラン講座\\プレゼント\\元データ.xlsx"]

{"sheet":"ワークシート関数リスト","index":2,"n_rows":123,"n_cols":4,"rows_kept":123,"cut":false,"hidden":true,"merged":[[1,1,1,3]]}
[]
[null,"ワークシート関数集"]
[]
[]
[]
["№","カテゴリー","動作名","ワークシート関数"]
[1,"検索系","値検索（VLOOKUPとMATCH）","VLOOKUP(検索値,範囲,MATCH(検索したい見出し名,範囲の見出し行,0),0)"]
[2,"検索系","値検索、エラーなら非表示（VLOOKUPとMATCHとIFERROR）","IFERROR(VLOOKUP(検索値,範囲,MATCH(検索したい見出し名,範囲の見出し行,0),0),\"\")"]
[3,"検索系","検索列より左を取得したい(INDEX&MATCH)","INDEX(範囲,MATCH(検索値,検索列,0),取得したい列番号)"]
[4,"検索系","シートがブック内に存在するかどうか(SHEET)※A1セルに検索したいシート名を入力","IF(ISERROR(SHEET(TEXT(A1,\"@\"))),\"ありません\",SHEET(TEXT(A1,\"@\"))&\"番目のシートです。\")"]
[5,"検索系","セル検索(新関数XLOOKUP)","XLOOKUP(G2,A2:A10,B2:B10,\"なし\",0,1)"]
[6,"日付関数","今日の日付","TODAY()"]
[7,"日付関数","誕生日から年齢算出(DATEDIF)","DATEDIF(誕生日のセル,TODAY(),\"Y\")"]
[8,"日付関数","日付から『年』取得(YEAR)","YEAR(A1)"]
[9,"日付関数","日付から『月』取得","MONTH(A1)"]
[10,"日付関数","月末日取得(DATE、YEAR、MONTH)※A1には日付を想定","DATE(YEAR(A1),MONTH(A1)+1,-1)"]
[11,"日付関数","２つの日付間の日数取得(DATEDIF)※D：日M：月、Y：年","DATEDIF(A1,B1,\"D\")"]
[12,"日付関数","営業日を数える(NETWORKDAYS.INTL)※A1開始日,A2終了日,1は休日設定","NETWORKDAYS.INTL(A1,A2,1)"]
[13,"日付関数","休日、祝日を除いた営業日数を数える※別途『祝日一覧』シートのA列に祝日日付を配置","NETWORKDAYS.INTL(A1,A2,1,祝日一覧!A:A)"]
[14,"日付関数","翌月の末日(EOMONTH)","TEXT(EOMONTH(\"2022/12/31\",1),\"ggge年m月d日\") & \"がお支払い期限となります。\""]
[15,"日付関数","日付と時間を取得(NOW)","NOW()"]
[16,"日付関数","今年を取得(TODAY,YEAR)","YEAR(TODAY())"]
[17,"日付関数","今月を取得(TODAY,MONTH)","MONTH(TODAY())"]
[18,"日付関数","あと〇日！の表示方法(DAYS、TODAY)","\"試験まであと\" & DAYS(\"2022/12/31\",TODAY()) & \"日!\""]
[19,"日付関数","評価レビュー『☆』を自動入力させる(REPT)※A1には数字を入れてください。","REPT(\"☆\",A1)"]
[20,"日付関数","時間を分に変換(CONVERT)","CONVERT(A1,\"hr\",\"mn\")"]
[21,"日付関数","分を時間に変換","CONVERT(A1,\"mn\",\"hr\")"]
[22,"日付関数","日付時間から時刻を取り出す(HOUR)※A1には時間『17:10:34』など","HOUR(A1)"]
[23,"日付関数","日付時間から分を取り出す(MINUTE)※A1には時間『17:10:34』など","MINUTE(A1)"]
[24,"日付関数","日付時間から秒を取り出す(SECOND)※A1には時間『17:10:34』など","SECOND(A1)"]
[25,"財務","値を数える(COUNTA)※見出しあり","COUNTA(A:A)-1"]
[26,"財務","もし〇以上かつ〇以下なら(IF,AND)","IF(AND(A12>=18,A12<=60),\"採用基準達成\",\"基準を満たししていません。\")"]
[27,"財務","年代人数『40代がセル範囲に何人いるか』(SUMPRODUCT)","SUMPRODUCT((ROUNDDOWN(A1:A10,-1)=40)*1)"]
[28,"財務","A列(誕生日列)の中で12月生まれの人の人数","SUMPRODUCT((MONTH(A:A)=12)*1)"]
[29,"財務","最大値取得(MAX)","MAX(A1:A10)"]
[30,"財務","最小値取得","MIN(A1:A10)"]
[31,"財務","〇番目に大きい値取得(LARGE)※3番目に大きい値","LARGE(A1:A10,3)"]
[32,"財務","●番目に小さい値（0を省く）を取得(SMALL,COUNTIF)","SMALL(A1:A10,COUNTIF(A1:A10,0)+1)"]
[33,"財務","条件を満たしたセルを数える(COUNTIF)※A列から『〇』のセルを数える","COUNTIF(A:A,\"〇\")"]
[34,"財務","特定の文字を含むセルを数える(COUNTIF)※『田中〇〇』を数える","COUNTIF(A:A,\"田中*\")"]
[35,"財務","D2セルの値から始まるセルを数える(COUNTIF)","COUNTIF(A:A,D2&\"*\")"]
[36,"財務","複数条件を満たすセルを数える(COUNTIFS)※A列がPC機器なD列のセルを数える","COUNTIFS(D:D,A:A,\"PC機器\")"]
[37,"財務","条件を満たしたセルのみ合計する(SUMIFS)※B列が『東京支店』のみC列合計","SUMIFS(C:C,B:B,\"東京支店\")"]
[38,"財務","複数条件を満たすセルを合計する(SUMIFS)※A列が『PC機器』、B列が『東京支店』のC列を合計","SUMIFS(C:C,A:A,\"PC機器\",B:B,\"東京支店\")"]
[39,"財務","ある条件を満たしたセルの平均値(AVERAGEIFS)※B列が東京支店のC列の平均値","AVERAGEIFS(C:C,B:B,\"東京支店\")"]
[40,"財務","切捨て(ROUNDDOWN)※0の部分は小数点以下の桁数","ROUNDDOWN(A1,0)"]
[41,"財務","切り上げ(ROUNDUP)※0の部分は小数点以下の桁数","ROUNDUP(A1,0)"]
[42,"財務","四捨五入(ROUND)※0の部分は小数点以下の桁数","ROUND(A1,0)"]
[43,"財務","文字列を数値に変換(VALUE)","VALUE(A1)"]
[44,"財務","テーブルの列を合計(SUM)","SUM(テーブル名[列名])"]
[45,"財務","空白セルを数える(COUNTBLANK)","COUNTBLANK(A1:A10)"]
[46,"財務","数値の順位を求める","RANK.EQ(A2,$A$2:$A$100,0)"]
[47,"財務","中央値を求める","MEDIAN(A2:A10)"]
[48,"文字列処理","検索する文字が何文字目にあるか(FIND)","FIND(\"検索する文字\",\"文字列\")"]
[49,"文字列処理","セルとセルの文字を結合する","A1& B1"]
[50,"文字列処理","セルを文字を結合する","\"『\" & A1 & \"』はA1セルの値です。\""]
[51,"文字列処理","半角スペース、全角スペースを全角スペースに統一(TRIM、SUBSTITUTE)","TRIM(SUBSTITUTE(A1,\" \",\"　\"))"]
[52,"文字列処理","全角を半角へ変換(ASC)","ASC(A1)"]
[53,"文字列処理","半角を全角へ変換(JIS)","JIS(A1)"]
[54,"文字列処理","大文字に変換(UPPER)","UPPER(A1)"]
[55,"文字列処理","小文字へ変換","LOWER(A1)"]
[56,"文字列処理","文字を置換する(SUBSTITUTE)","SUBSTITUTE(A1,\":\",\"-\")"]
[57,"文字列処理","ある文字より前までの文字列(FIND、LEFT)","LEFT(A1,FIND(\"@\",A1)-1)"]
[58,"文字列処理","ある文字より後の文字列(FIND、LEN、RIGHT)","RIGHT(A1,LEN(A1)-FIND(\"@\",A1))"]
[59,"文字列処理","文字列の文字数","LEN(A1)"]
[60,"文字列処理","ある文字より前までの文字列(新関数TEXTBEFORE)","TEXTBEFORE(A1,\"@\")"]
[61,"文字列処理","ある文字より前までの文字列(新関数TEXTAFTER)","TEXTAFTER(A1,\"@\")"]
[62,"文字列処理","ファイルパスのファイル名部分取得(新関数TEXTAFTER)","TEXTAFTER(\"C:\\User\\●●\\ファイル名.xlsx\",\"\\\",-1)"]
[63,"文字列処理","値を通貨形式で表示(TEXT)","TEXT(A1,\"¥#,###0\")"]
[64,"文字列処理","値を桁区切り形式で表示(TEXT)","TEXT(A2,\"#,###0\")"]
[65,"文字列処理","値を曜日形式で表示(TEXT)","TEXT(A1,\"aaa\")"]
[66,"文字列処理","値を和暦で表示(TEXT)","TEXT(A1,\"ge年m月d日\")"]
[67,"文字列処理","値を『〇.〇〇.〇〇』形式で表示(TEXT)","TEXT(A1,\"yyyy.m.d\")"]
[68,"文字列処理","フリガナ(PHONETIC)","PHONETIC(A1)"]
[69,"文字列処理","両端のスペースを削除","TRIM(\"　　田中　太郎　　\")"]
[70,"文字列処理","住所から都道府県名取得※A1には住所が入る","LEFT(A1,IFERROR(FIND(\"県\",A1),3))"]
[71,"文字列処理","都道府県以外の住所を取得","RIGHT(A1,LEN(A1)-IFERROR(FIND(\"県\",A1),3))"]
[72,"文字列処理","丁目、番地、号、『の』を『-』に変換(SUBSTITUTE×3)","SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,\"丁目\",\"-\"),\"番地\",\"-\"),\"号\",\"\"),\"の\",\"-\")"]
[73,"文字列処理","文字列を結合する","CONCAT(A1:A5)"]
[74,"文字列処理","区切り文字を挟み文字を結合する(TEXTJOIN)","TEXTJOIN(\",\",TRUE,A2:D2)"]
[75,"文字列処理","通貨『円』に変換",{"$f":"YEN(#REF!)","v":{"$error":"#NAME?"}}]
[76,"構文","もしAならば●、そり以外ならば■","IF(A1=100,\"満点です！\",\"もっと頑張りましょう\")"]
[77,"構文","もしAかつBならば(IF,AND)","IF(AND(A1=\"A\",B1=\"B\"),\"実行\",\"中止\")"]
[78,"構文","もしAまたはBならば(IF,OR)","IF(OR(A1=\"A\",A1=\"B\"),\"実行\",\"中止\")"]
[79,"構文","もしAかつBじゃないならば(IF、AND、NOT)","IF(NOT(AND(A1=\"A\",B1=\"B\")),\"実行\",\"中止\")"]
[80,"構文","もしAまたはBじゃなければ(IF、NOT、OR)","IF(NOT(OR(A1=\"A\",A1=\"B\")),\"実行\",\"中止\")"]
[81,"構文","Aならば●、Bならば▼、Cならば■(IF×2)","IF(A1=100,\"満点です。\",IF(A1>=80,\"合格です。\",\"不合格です。\"))"]
[82,"構文","数式にエラーがあった場合に処理(IFERROR)","IFFERROR(数式,\"なし\")"]
[83,"構文","エラーかどうかの判断(ISERROR)","IF(ISERROR(H14),\"エラーです。\",\"正常です。\")"]
[84,"構文","〇番目の値を自動表示(CHOOSE)※この例だと２番目の『二つ目』が表示される","CHOOSE(2,\"一つ目\",\"二つ目\",\"三つ目\")"]
[85,"その他","行方向に連番※下方向にセルをコピーして使用(ROWS)","ROWS($A$1:A1)"]
[86,"その他","右方向に連番作成※右方向にセルをコピーして使用(COLMNS)","COLUMNS($A$1:A1)"]
[87,"その他","最終行へジャンプ","HYPERLINK(\"#A\"&COUNTA(A:A),\"最終行へ移動\")"]
[88,"その他","Webサイトなどのリンクを作成(HYPERLINK)","HYPERLINK(\"https://www.youtube.com/@user-de1mp3fe1o/videos\")"]
[89,"その他","指定範囲内のランダムの数字(RANDBETWEEN)※ツールのテストなどで使用します。","RANDBETWEEN(1,1000)"]
[90,"その他","アルファベットA～Zまで自動入力(CODE,CHAR)※A1に『A』を入力。あとはA2に数式入力して下にコピー","CHAR(CODE(A1)+1)"]
[91,"その他","他ファイルへのリンク(HYPERLINK)","HYPERLINK(\"C:¥User\\～¥ファイル名.xlsx\",\"〇〇ブックを開く\")"]
[92,"その他","他シートのセルへのリンク(HYPERLINK)","HYPERLINK(\"#Sheet2!D1\",\"リンクだよ\")"]
[93,"条件付き書式","半角4文字以上だと背景色変わる(LENB)※条件付き書式で数式入力し、背景色を赤に設定してください。","LENB($A$1)>=4"]
[94,"条件付き書式","140文字以上だと背景色赤色(LEN)※条件付き書式で数式を入力し、背景色を黄色に設定してください。","LEN($A$1)>=140"]
[95,"条件付き書式","曜日別で色分け(WEEKDAY)※条件付き書式で数式設定後に背景色を黄色にしてください。","TEXT(A1,\"aaa\")=\"日\""]
[96,"条件付き書式","一行おきに背景色を付ける※条件付き書式で数式を設定し、背景色を設定してください。","MOD(ROW(),2)=1"]
[97,"条件付き書式","セルに何も表示させない",";;;"]
[98,"条件付き書式","今日が誕生日の一週間前後の場合文字を赤くする※条件付き書式の数式に設定し、フォントを赤色に設定してください。","AND(DATE(YEAR(TODAY()),MONTH(A1),DAY(A1))>=TODAY()-7,DATE(YEAR(TODAY()),MONTH(A1),DAY(A1))<=TODAY()+7)"]
[99,"表作成","表を縦横入れ替え(TRANSPOSE)","TRANSPOSE(A1:C10)"]
[100,"表作成","表に別の列を追加する(VLOOKUP、MATCH)","VLOOKUP($A2,二つ目シート!$A:$C,MATCH(一つ目シート!C$1,二つ目シート!A$1:C$1,0),0)"]
[101,"表作成","値の応じて文字を変更(SWITCH)※B2セルの値によって","SWITCH(B2,\"パソコン\",\"PC\",\"デスク\",\"DK\",\"マウス\",\"MS\",\"キーボード\",\"KB\")"]
[102,"表作成","複数シートのデータを一つにまとめる(新関数VSTACK,FILTER)","FILTER(VSTACK(最初のシート名:最終シート名!A2:A1000),VSTACK(最初のシート名:最終シート名!A2:A1000)<>\"\")"]
[103,"表作成","複数シートからデータを一つにまとめて並び替え(新関数FILTER,VSTACK,SORT)※3列目で降順","SORT(FILTER(VSTACK(一つ目シート:二つ目シート!A2:C10000),VSTACK(一つ目シート:二つ目シート!A2:A10000)<>\"\"),3,-1)"]
[104,"表作成","列番号を取得(COLUMN)","COLUMN(D5)"]
[105,"表作成","行番号取得(ROW)","ROW(D5)"]
[106,"表作成","フィルター(新関数FILTER)※見出し行は無しで抽出してください。","FILTER(A2:C10,B2:B10=\"東京支店\")"]
[107,"表作成","FILTER関数で抽出されたセルの合計(新関数FILTER、SUM)","SUM(FILTER(C2:C10,B2:B10=\"東京支店\"))"]
[108,"表作成","●●かつ〇〇でデータ抽出(新関数FILTER)","FILTER(A2:D11,(C2:C11=\"Aグループ\")*(D2:D11>=30))"]
[109,"表作成","●●または〇〇でデータ抽出(新関数FILTER)","FILTER(A2:D11,(C2:C11=\"Aグループ\")+(C2:C11=\"Bグループ\"))"]
[110,"表作成","並び替え(新関数SORT)※SORT(セル範囲、基準とする列番号、1：昇順、2：降順)","SORT(A2:D11,2,1)"]
[111,"表作成","並び替え(新関数SORTBY)※並び替え基準となる列をセル範囲で指定可能。","SORTBY(A2:D11,C2:C11,-1)"]
[112,"表作成","複数基準で並び替え(新関数SORTBY)※B列を基準に昇順、そのうえでC列を基準に降順に","SORTBY(A2:D11,B2:B11,1,C2:C11,-1)"]
[113,"表作成","複数テーブルを結合(新関数VSTACK)※一つ目のテーブルだけは[#すべて]を入れると見出しが出る","VSTACK(テーブル1[#すべて],テーブル2)"]
[114,"表作成","重複のないリストを取得(新関数UNIQUE)","UNIQUE(A1:A100)"]
[115,"表作成","列全体から重複のないリストを取得(新関数FILTER、UNIQUE)※『商品名』は列見出しセルの値","FILTER(UNIQUE(A:A),(UNIQUE(A:A)<>\"\")*(UNIQUE(A:A)<>\"商品名\"))"]
[116,"表作成","一列おきにデータを取り出す(OFFSET)※セルを右にコピーしていく。3列おきなら『2』を『3』に変更してください。","OFFSET($A$2,0,(COLUMN(A2)-COLUMN($A$2))*2)"]
[117,"表作成","一行おきにデータを取り出す(OFFSET)※セルを下にコピーします。2行おきなら『2』を『3』に変更してください。","OFFSET($A$2,(ROW(A2)-ROW($A$2))*2,0)"]

{"sheet":"関数カテゴリー","index":3,"n_rows":11,"n_cols":1,"rows_kept":11,"cut":false,"hidden":true,"merged":[]}
["カテゴリー"]
["検索系"]
["日付関数"]
["財務"]
["文字列処理"]
["検索関係"]
["カテゴリー6"]
["カテゴリー7"]
["構文"]
["その他"]
["条件付き書式"]

{"sheet":"記入例集","index":4,"n_rows":352,"n_cols":4,"rows_kept":352,"cut":false,"hidden":true,"merged":[[1,1,1,3]]}
[]
[null,"VBAコード集"]
[]
[]
[]
["№","カテゴリー","動作名","コード"]
[1,"セル操作","セルへ入力","Worksheets(\"シート名\").Cells(1,1).Value = \"Hello VBA!\""]
[2,"セル操作","特定のセルを含む行を削除","Range(\"A3\").EntireRow.Delete"]
[3,"セル操作","メモ全削除","    Dim memoRng As Range\r\n    For Each memoRng In Sheet5.UsedRange '『UsedRange』はなんらかの値が入力されているセル全てを取得できます。\r\n        If TypeName(memoRng.Comment) = \"Comment\" Then 'コメントあれば\r\n            memoRng.Comment.Delete\r\n        End If\r\n    Next"]
[4,"セル操作","列選択","Worksheets(\"シート名\").Range(\"A:A\").select"]
[5,"セル操作","最終行番号取得","    Dim lastRow As Long\r\n    lastRow = Worksheets(\"シート名\").Cells(Rows.Count,1).End(xlUp).Row'最終行番号取得"]
[6,"セル操作","セル範囲指定","    With Worksheets(\"シート名\")\r\n        Dim myRng As Range\r\n        Set myRng = .Range(.Cells(1, 1), .Cells(Rows.Count, 5).End(xlUp))\r\n    End With"]
[7,"セル操作","見出しありデータベースのデータ部分のみ選択","    With Worksheets(\"シート名\")\r\n\t.Cells(1, 1).CurrentRegion.Offset(1, 0).Resize(.Cells(1, 1).CurrentRegion.Rows.Count - 1).Select\r\n    End With"]
[8,"セル操作","セル範囲全体選択","左上角のセルを指定\r\nWorksheets(\"シート名\").Range(\"A1\").CurrentRegion.Select"]
[9,"セル操作","範囲内にあるかどうか","    'このActivecellがA5～D25内にあるかどうか。Activecellを他セルに変えれば応用可能。\r\n    If Not Intersect(ActiveCell, Range(\"A5:D25\")) Is Nothing Then 'Intersect(範囲１、範囲2）で共通する範囲を返す\r\n        MsgBox \"範囲内にあり\"\r\n    End If"]
[10,"セル操作","セル検索（完全一致）","    Dim userNameRng As Range\r\n    Set userNameRng = Range(\"A3:A500\").Find(what:=\"検索値\", lookat:=xlWhole)\r\n    'VBAでは見出し行があることが想定されているため、A4から検索されることとなる。※最後はA3も検索されます。\r\n    If Not userNameRng Is Nothing Then\r\n          ○○○ (処理)\r\n    End If"]
[11,"セル操作","セル検索（部分一致）","    Dim userNameRng As Range\r\n    Set userNameRng = Range(\"A3:A100\").Find(what:=\"検索値\", lookat:=xlPart)\r\n    'VBAでは見出し行があることが想定されているため、A4から検索されることとなる。\r\n    If Not userNameRng Is Nothing Then\r\n          ○○○ (処理)\r\n    End If"]
[12,"セル操作","Findメソッド設定初期化","　　'これをFindメソッドの前に記述すればエラー防止になります。\r\n    Application.FindFormat.Clear\r\n    Cells(1, 1).Find _\r\n    what:=\"\", _\r\n    LookIn:=xlValues, _\r\n    Lookat:=xlWhole, _\r\n    SearchOrder:=xlByColumns, _\r\n    MatchCase:=False, _\r\n    MatchByte:=False, _\r\n    SearchFormat:=False"]
[13,"セル操作","セルを連続で検索する","    Dim num As Range\n    If ActiveCell <> Range(\"G2\") And ActiveCell.Value <> Range(\"G2\").Value Then  'まず普通に検索\n        '次々に検索すると検索開始位置が残ってしまう場合があるのでリセットしておく。\n        Set num = Range(\"B3:B30000\").Find(what:=\"\", lookat:=xlWhole) \n        Set num = Range(\"B3:B30000\").Find(what:=Range(\"G2\").Value, lookat:=xlWhole)\n        num.Select\n    ElseIf ActiveCell.Value = Range(\"G2\").Value Then  'ここから次を検索する作業。\n        Set num = Range(\"B3:B30000\").FindNext(After:=ActiveCell)  'アクティブセルより下を検索する。\n        num.Select\n    End If"]
[14,"セル操作","セルが結合されているか","Range(A1).mergeCells'Ａ1セルが結合されていればtrueを返す"]
[15,"セル操作","セル結合の範囲を取得","Range(A1).mergeArea'Ａ1セルの結合範囲"]
[16,"セル操作","セルを結合する","Range(\"A1:C3\").merge"]
[17,"セル操作","セルを結合する（複数範囲）","Range(\"A1:C3\").merge True 'A1からC1、A2からC2、A3からC3を結合する"]
[18,"セル操作","セル結合解除","Range(\"A1”）.unmerge"]
[19,"セル操作","セル結合（『データあり』ダイアログ非表示設定）","    Application.Displayalerts=false '確認メッセージを表示させない\r\n    Range(\"A1:C3\").merge\r\n    Application.displayalerts=true '確認メッセージを表示するに戻す"]
[20,"セル操作","一番上の行からセル検索","セル範囲.find(what:=\"田中\",after:=cells(rows.count,1)) 'これはつまりafterに最下セルを代入することで、その次のセル（最上セル）から検索するための技"]
[21,"セル操作","一番下からセル検索","    Set frng = ActiveSheet.Range(\"A3:A100\").Find(what:=Sheets(\"受付簿\").Cells(行数, 列数).Value, lookat:=xlWhole, searchDirection:=xlPrevious)\r\n    'VBAでは見出し行があることが想定されているため、A4からが検索範囲となることは気を付ける。\r\n    If Not frng Is Nothing Then\r\n    ○○○ (処理)\r\n    End If"]
[22,"セル操作","置換","    Dim ufo As String\r\n    ufo = \"宇宙人\"\r\n    ufo = Replace(ufo, \"人\", \"船\") '人と船を入れ替える。\r\n    MsgBox ufo '宇宙船と表示される。"]
[23,"セル操作","複数のセル一括置換","    '下記のセル範囲から『支店』という文字を『』空文字へ置き換える。つまり『支店』を削除するというコード\r\n    Range(\"A1:C10\").Replace what:=\"支店\", replacement:=\"\", lookat:=xlPart"]
[24,"セル操作","文字の右のスペースを消す","    Do Until Right(simei.Value, 1) <> \" \" '文字列の松尾に空白がなくなるまで続ける\r\n          simei.Value = Left(simei.Value, Len(simei.Value) - 1) '松尾一文字分を省く\r\n    Loop"]
[25,"セル操作","コピー＆ペースト","    ’A1～C17をコピーしてセルD1を左上角のセルとして貼付け\r\n    Range(\"A1:C17\").Copy Range(\"D1\")"]
[26,"セル操作","コピーのみ","    Range(\"A1:C17\").Copy "]
[27,"セル操作","値のみペースト","    Range(\"D1:F17\").PasteSpecial Paste:=xlPasteValues\r\n    Application.CutCopyMode = False 'コピーとペーストの処理を行を分けて記述する場合、コピーモードをFalseにしないと点線が残る。"]
[28,"セル操作","ペースト","    Range(\"D1:F17\").PasteSpecial Paste:=xlPasteAll\r\n    Application.CutCopyMode = False 'コピーとペーストの処理を行を分けて記述する場合、コピーモードをFalseにしないと点線が残る。"]
[29,"セル操作","複数セルに入力","range(\"A1:A10\").Value = \"〇\""]
[30,"セル操作","表示形式（通貨型に変換）","range(\"A5\").numberformatlocal=\"#,##0円\" '0は値が0なら0を表示。#は0なら空白になる。"]
[31,"セル操作","値の表示変更","    'セルの表示形式自体を変えるわけではなく、コード上で値の表示を変えます。\r\n    Dim myDate As Date\r\n    myDate = Range(\"A1\").Value\r\n    Range(\"B1\").Value = Format(myDate, \"Shot Time\")'最後の指定部分は\"#,##0\"などの形式で指定することも可能。"]
[32,"セル操作","文字の位置（何番目にあるか）","InStr(検索開始位置,\"文字列\", \"文字列から探したい文字\")←これで探したい文字が何文字目にあるかわかる。"]
[33,"セル操作","文字の位置（後ろから探す）","InStrRev(\"文字列\",\"文字列から探したい文字\")　"]
[34,"セル操作","左から何文字分取得","left(文字列,数）"]
[35,"セル操作","右から何文字目まで取得","right(文字列,数)"]
[36,"セル操作","文字数取得","len(文字列)　\r\n'※注意！Ｌｅｎ関数は文字数を調べるが、もしlong型など（つまり『11』などの数字など）が入っていたら常に4を返してしまいます。\r\n'つまり、データ型の大きさを調べているということで、桁数を調べたいならかならず一度string型へ変換する必要があります。たとえばCｓｔｒ（数）など。"]
[37,"セル操作","〇文字目から〇文字分取得","Mid(文字列,3,3) '3文字目から3文字分抜き出す"]
[38,"セル操作","文字列に文字列を挿入","    Dim moji As String\r\n    moji = \"金子太郎\" 'これに『甲』を挿入して『金子甲太郎』にしたい。\r\n    moji = Left(moji, 2) & \"甲\" & Right(moji, 2) '左から２文字『金子』と『甲』と右から２文字『太郎』を結合させる。⇒『金子甲太郎』"]
[39,"セル操作","カタカナに変換","strconv(\"文字\",vbkatakana)’カタナカに変換"]
[40,"セル操作","ひらがなに変換","strconv(\"文字\",vbhiragana)’ひらがなに変換"]
[41,"セル操作","半角→全角","StrConv(文字列,vbWide) ’全角へ変換"]
[42,"セル操作","全角→半角","StrConv(文字列,vbNarrow) '半角数字に変換"]
[43,"セル操作","行追加","rows(2).insert'行２を追加する"]
[44,"セル操作","複数行追加","Rows(\"5:7\").Insert’５から7行目（つまり３行分）を挿入する"]
[45,"セル操作","行削除","rows(5).delete'5行目を削除"]
[46,"セル操作","複数行選択","Rows(\"1:3\").Select"]
[47,"セル操作","行を非表示にする","Rows(1).Hidden = True '1行目を非表示"]
[48,"セル操作","非表示行を飛ばす","    Dim lastRow As Long:LastRow = Worksheets(\"シート名\").cells(Rows.Count,1).end(xlup).row'最終行番号取得\r\n    Dim i As Long\r\n    for i = 1 to lastRow\r\n        If Rows(i).Hidden = False Then '行が表示されていた場合\r\n            msgbox i & \"行目は表示されています。\"\r\n        End If\r\n    Next i"]
[49,"セル操作","複数列選択","Colomuns(\"A:C\").select"]
[50,"セル操作","セル削除","ranve(\"A1\").Delete (xlShiftUp)"]
[51,"セル操作","特定のセルを含む行を削除","range(\"A3\").EntireRow.Delete"]
[52,"セル操作","特定のセルを含む行","range(\"A1\").EntireRow"]
[53,"セル操作","列幅調整","Worksheets(\"シート名\").Range(\"A1\").EntireColumn.ColumnWidth = 15"]
[54,"セル操作","列幅自動調整（","Worksheets(\"シート名\").Columns(\"A:B\").AutoFit"]
[55,"セル操作","値の削除","Range(\"B3：L3\").Value =\"\""]
[56,"セル操作","セルを編集状態にする","sendKeys\"{F2}\"’キーボード操作でF2を押す"]
[57,"セル操作","フィルター","     Range(\"A1\").AutoFilter field:=3, Criteria1:=\"男性\" 'A1セルを角とする表において、左から3列目を見て、『男性』でフィルターをかける\r\n\r\n　　 Range(\"A1\").AutoFilter  ’もう一度書くことで解除\r\n　　 Sheet1.AutoFilterMode = False'もしくはこの記述でも解除可\r\n　　"]
[58,"セル操作","フィルターの絞込みのみ解除","    If ActiveSheet.FilterMode = True Then\r\n        ActiveSheet.ShowAllData'一度フィルターモードかどうかチェックしないとエラーになる\r\n    End If\r\n　　"]
[59,"セル操作","セル背景色","range(\"A5\").interior.colorindex = 16   '16はグレー。Interiorは背景色,colorindexは色番号。詳しくはGoogleで『VBA　colorIndex』で検索"]
[60,"セル操作","セル文字色","range(\"A5\").font.colorindex = 6   '6は黄色"]
[61,"セル操作","五十音順に並び替え","Range(\"A6\").Sort key1:=Range(\"D6\"), order1:=xlAscending,Header:=xlYes, SortMethod:=xlPinYin 'A6を角にしてD6の列を判断対象として五十音順に並び替え"]
[62,"セル操作","並び替え（昇順）","Range(\"B5\").Sort key1:=Range(\"D5\"), order1:=xlAscending, Header:=xlYes'B5を角として、Ｄ５の列をみて並び替え昇順"]
[63,"セル操作","並び替え（降順）","Range(\"B5\").Sort key1:=Range(\"D5\"), order1:=xldescending, Header:=xlYes'B5を角として、Ｄ５の列をみて並び替え降順"]
[64,"セル操作","改ページの挿入","sheets(\"○○\").pagesetup.printarea=\"A1:B3\""]
[65,"セル操作","印刷範囲指定","    With Worksheets(\"〇〇\")\r\n         .PageSetup.PrintArea = .Range(.Cells(1, 1), .Cells(10, 13)).Address\r\n    End With"]
[66,"セル操作","改ページ解除","sheets(\"○○\").resetallpagebreaks"]
[67,"セル操作","改ページ横断","Sheets(\"〇〇\").HPagebreaks.Add Range(\"A7\")"]
[68,"セル操作","改ページ縦断","Sheets(\"〇〇\").VPagebreaks.Add Range(\"E:E\")"]
[69,"セル操作","複数のセルを選択中かどうか","    If Selection.Count <> 1 Then\r\n         MsgBox \"複数のセルが選択されています。\"\r\n    End If"]
[70,"セル操作","セル内改行","    'セル内改行の場合はセルに入力するテキストの間に『vbLf』を入力すれば可能です。\r\n    range(\"A1\").Value = \"今日も一日\" & vbLf & \"よろしくお願いします!\""]
[71,"セル操作","セル内改行を削除する","Range(\"A1\").Value = Replace(Range(\"A1\").Value,vbLf,\"\")"]
[72,"セル操作","罫線を引く","Range(\"A1:C10\").Borders.LineStyle = xlContinuous'A1セル～C10セルまでの範囲に罫線（格子）を引く"]
[73,"セル操作","重複チェック","    If Cells(ActiveCell.Row, 13).Value <> \"\" Then\r\n        Dim i As Long\r\n        For i = 1 To Range(\"A6\").End(Direction:=xlDown).Row\r\n            If WorksheetFunction.CountIf(Range(\"M1:M30000\"), Cells(i, 13)) > 1 Then\r\n                Cells(i, 14).Interior.ColorIndex = 6\r\n            End If\r\n        Next\r\n    End If"]
[74,"セル操作","重複チェック応用","    For i = 1 To Range(\"A6\").End(Direction:=xlDown).Row '一行目からID番号入力のある最後の行数分繰り返す。\r\n        If WorksheetFunction.CountIf(Range(Cells(6, 13), Cells(i, 13)), Cells(i, 13)) > 1 Then 'COUNTIF関数で重複確認\r\n            Cells(i, 14).Interior.ColorIndex = 6 '重複なら色塗り\r\n        Else:\r\n            If Cells(i, 14).Interior.ColorIndex = 6 Then '重複ないなら\r\n                Cells(i, 14).Interior.ColorIndex = 0  '色なし\r\n           End If\r\n        End If\r\n    Next i"]
[75,"セル操作","重複チェック（複数列）","    '行内の複数セルのすべてが重複している場合に削除　※Excel2007以降でしか使用できない関数 \r\n    Range(Cells(5, 3), Cells(Rows.Count, 3).End(xlUp).Offset(, 9)).RemoveDuplicates Columns:=Array(1,2,3,4,5,6,7,8,9,10), Header:=xlNo'arrayはそれぞれの列を指定"]
[76,"セル操作","重複なし抽出（ユニークな値を抽出）","Sub 重複なし抽出()\r\n    Dim myDic As Object\r\n    Dim rng As Variant, rngs As Range\r\n        Set myDic = CreateObject(\"Scripting.Dictionary\")\r\n        With Worksheets(\"シート名\")\r\n            Set rngs = .Range(.Cells(2, \"E\"), .Cells(Rows.Count, \"E\").End(xlUp))\r\n        End With\r\n        For Each rng In rngs\r\n            If Not myDic.Exists(rng.Value) Then\r\n                myDic.Add rng.Value, 1\r\n            End If\r\n        Next\r\n        Dim myKey As Variant\r\n        myKey = myDic.Keys\r\n        \r\n        MsgBox Join(myKey)\r\n        \r\n        Set myDic = Nothing\r\n\r\nEnd Sub"]
[77,"セル操作","セルの表示形式変更","  '日付列の表示形式を標準にしておく。\r\n    Range(\"B3:B50000\").NumberFormatLocal = \"@\"\r\n"]
[78,"セル操作","シリアル値を入力","例えばセルB4が1987/11/11と入力されているとする。\r\nRange(\"C3\").value=range(\"B4\").value2’この『value2』とするとシリアル値が入る。"]
[79,"セル操作","期間でフィルター","    Dim hyo As Range\r\n    Dim h As Variant\r\n    \r\n    With Sheets(\"〇〇\")\r\n\r\n        Dim taishoTsuki As Long\r\n        Dim getsumatsu As Long\r\n'        taishoTsuki = CDate(.Range(\"H1\").Value & \"/\" & .Range(\"I1\").Value & \"/\" & \"1\")\r\n        taishoTsuki = DateSerial(.Range(\"H1\").Value, Range(\"I1\").Value, 1)\r\n        getsumatsu = DateSerial(.Range(\"H1\").Value, Range(\"I1\").Value + 1, 0)\r\n        .Range(\"A2\").AutoFilter field:=6, Criteria1:=\">=\" & taishoTsuki, Operator:=xlAnd, _\r\n            Criteria2:=\"<=\" & getsumatsu\r\n\r\n        Set hyo = .Range(.Cells(3, 2), .Cells(.Rows.Count, 2).End(xlUp).Offset(, 8))\r\n        For Each h In hyo\r\n           h.Value = Replace(h.Value, \"!\", \"\")\r\n        Next\r\n       \r\n    End With"]
[80,"セル操作","フィルター（以上、以下）","    '100以上200以下でフィルター\r\n    Range(\"A2\").AutoFilter field:=6, Criteria1:=\">=100”, Operator:=xlAnd, _\r\n        Criteria2:=\"<=200\" \r\n    ’変数を使用するなら\r\n    Dim S as long, E as long\r\n    s = 100\r\n    d = 200\r\n    Range(\"A2\").AutoFilter field:=6, Criteria1:=\">=\" & S, Operator:=xlAnd, _\r\n        Criteria2:=\"<=\" & E "]
[81,"セル操作","空白セルを数える"," MsgBox Application.WorksheetFunction.CountBlank(Range(\"B:B\"))'B列で数える"]
[82,"セル操作","空白セルを取得","　　On Error Resume Next 'スペシャルセルズを使用する際は該当セルが無い場合はエラーになるためエラー無視を記述する。\r\n    '都道府県列、市町村列、番地列までで空白を数える。\r\n    Set kuhaku = Range(\"B:B\").SpecialCells(xlCellTypeBlanks)\r\n    On Error GoTo 0 'エラー無視解除"]
[83,"セル操作","連続データ入力（オートフィル）","    Range(\"A1\").Value = 1\r\n    Range(\"A1\").AutoFill Range(\"A1:A100\"), xlFillSeries"]
[84,"セル操作","パワークエリ自動更新","Private Sub Workbook_Open()\r\n    Dim con As WorkbookConnection\r\n    For Each con In ThisWorkbook.Connections\r\n        If con.Name Like \"*クエリ*\" = True Then\r\n            con.OLEDBConnection.Refresh\r\n        End If\r\n    Next\r\nEnd Sub"]
[85,"セル操作","スライサー更新","　　 'スライサー更新\r\n    Dim myCache As SlicerCache\r\n    For Each myCache In ThisWorkbook.SlicerCaches\r\n        myCache.RequireManualUpdate = False\r\n    Next"]
[86,"セル操作","条件付き書式を削除"," 　 'シート内の条件付き書式をクリア\r\n    Dim myRng As Range\r\n    Set myRng = Cells.SpecialCells(xlCellTypeAllFormatConditions)\r\n    myRng.FormatConditions.Delete"]
[87,"セル操作","全チェックボックスとセルをリンク","Sub チェックボックスのリンクを作成する()\r\n    Application.ScreenUpdating = False\r\n    Dim chkbox As CheckBox\r\n    For Each chkbox In Worksheets(\"マスタ\").CheckBoxes\r\n        chkbox.LinkedCell = chkbox.TopLeftCell.Address 'セルとリンクさせる\r\n        chkbox.TopLeftCell.NumberFormatLocal = \";;;\" 'さらに表示なし設定\r\n    Next chkbox\r\n    Application.ScreenUpdating = True\r\nEnd Sub"]
[88,"セル操作","行の自動色付け","条件付き書式でまずは『=CELL(\"ROW\")=ROW()』として背景色を設定しておく\r\n'そのあとにマクロをシートのイベントマクロに設定\r\nPrivate Sub Worksheet_SelectionChange(ByVal Target As Range)\r\n    Application.ScreenUpdating = True '画面更新\r\nEnd Sub"]
[89,"セル操作","テーブル化","\r\n    With Worksheets(\"シート名\")\r\n        .ListObjects.Add Source:=.Range(\"A1:E5\")\r\n    \r\n        'CurrentRegionを使用するパターン\r\n        '.ListObjects.Add Source:=.Range(\"B42\").CurrentRegion\r\n    End With"]
[90,"セル操作","テーブル指定の３パターン","    With Worksheets(\"シート名\")\r\n        'テーブルの一部のセルから指定\r\n        .Range(\"B83\").ListObject.Range.Select\r\n        'テーブルが作られた番号で指定\r\n        .ListObjects(1).Range.Select\r\n        'テーブル名で指定\r\n        .ListObjects (\"テーブル2\")\r\n    End With"]
[91,"セル操作","テーブルの列を選択","   'テーブル内の２列目を選択 ※テーブル名『顧客情報テーブル』\r\n    Worksheets(\"シート名\").ListObjects(\"顧客情報テーブル\").ListColumns(2).Range.Select"]
[92,"セル操作","テーブル列のデータ部分のみ選択","  '『顧客情報テーブル3』テーブル内の『ID』列データ部分のみを選択\r\n    Worksheets(\"シート名\").ListObjects(\"顧客情報テーブル3\").ListColumns(\"ID\").DataBodyRange.Select"]
[93,"セル操作","テーブルへ例追加","    '『顧客情報テーブル4』の２列目に列（空）を追加\r\n    Worksheets(\"シート名\").ListObjects(\"顧客情報テーブル4\").ListColumns.Add 2"]
[94,"セル操作","テーブルに列を追加し列名を指定","    '『顧客情報テーブル5』の２列目に『姓』列を追加\r\n    With Worksheets(\"シート名\").ListObjects(\"顧客情報テーブル5\").ListColumns.Add(2)\r\n        .Range(1).Value = \"姓\"\r\n    End With\r\n"]
[95,"セル操作","テーブルに列を追加し値も設定する","    '『顧客情報テーブル5』の２列目に『姓』列を追加してみましょう！\r\n    Dim myData As Variant\r\n    myData = Array(\"姓\", \"有田\", \"金田\", \"斎藤\", \"田中\")\r\n    With Worksheets(\"シート名\").ListObjects(\"顧客情報テーブル6\").ListColumns.Add(2)\r\n        .Range.Value = WorksheetFunction.Transpose(myData)\r\n    End With"]
[96,"セル操作","テーブルに列に追加しセル範囲の値を設定する","    'テーブルに列に追加し値を設定する\r\n    Dim myData As Variant\r\n    myData = Worksheets(\"シート名\").Range(\"F1:F5\").Value\r\n\r\n    With Worksheets(\"シート名\").ListObjects(\"顧客情報テーブル6\").ListColumns.Add(2)\r\n        .Range.Value = myData 'この場合はTranspose関数不要　理由は二次元配列となるから\r\n    End With"]
[97,"セル操作","テーブル列を削除","　  '『顧客情報テーブル7』の『性別』列を削除してみましょう！\r\n    Worksheets(\"シート名\").ListObjects(\"顧客情報テーブル7\").ListColumns(\"性別\").Delete"]
[98,"セル操作","テーブルの行を選択","    '『顧客情報テーブル8』の３行目を指定してみましょう！\r\n    Worksheets(\"シート名\").ListObjects(\"顧客情報テーブル8\").ListRows(3).Range.Select\r\n"]
[99,"セル操作","テーブルに行追加と値設定","    '『顧客情報テーブル9』の3行目に『\"上田\"、\"男性\"、20』を追加\r\n    With Worksheets(\"シート名\").ListObjects(\"顧客情報テーブル9\").ListRows.Add(3)\r\n        .Range.Value = Array(\"上田\", \"男性\", 20)\r\n    End With\r\n"]
[100,"セル操作","テーブル最終行に一行追加し値を設定する","   '『顧客情報テーブル9』の一番下の行に『\"川村\", \"女性\", 18』を追加\r\n                                                                               'ただ↓『Add』とすることで最終行に追加される\r\n    With Worksheets(\"シート名\").ListObjects(\"顧客情報テーブル9\").ListRows.Add\r\n        .Range.Value = Array(\"川村\", \"女性\", 18)\r\n    End With"]
[101,"セル操作","テーブルの行を削除","    '『顧客情報テーブル10』の３行目を削除してみましょう！\r\n    Worksheets(\"シート名\").ListObjects(\"顧客情報テーブル10\").ListRows(3).Delete"]
[102,"セル操作","テーブル内検索","Sub ForEach検索()\r\n    'For Each～Nextステートメントを使用して氏名をメッセージボックスで表示　※『顧客情報テーブル13』\r\n    Dim myTable As ListObject\r\n    Set myTable = Sheet7.ListObjects(\"顧客情報テーブル11\")\r\n    Dim id As Long\r\n    id = Sheet7.Range(\"G47\").Value\r\n    \r\n    Dim idClm As Range, idRng As Range\r\n    Set idClm = myTable.ListColumns(\"ID\").DataBodyRange\r\n    For Each idRng In idClm\r\n        If idRng.Value = id Then\r\n            Dim userName\r\n            userName = idRng.Offset(0, 1).Value\r\n            Exit For\r\n        End If\r\n    Next\r\n    \r\n    MsgBox userName\r\nEnd Sub"]
[103,"セル操作","テーブル集計","Sub テーブル集計()\r\n     '『売上管理テーブル』の金額列の合計をMsgboxで表示してみよう！\r\n   Dim myTable As ListObject\r\n   Set myTable = Sheet8.ListObjects(\"売上管理テーブル\")\r\n   Dim priceClm As ListColumn\r\n   Set priceClm = myTable.ListColumns(\"金額\")\r\n   myTable.ShowTotals = True\r\n   priceClm.TotalsCalculation = xlTotalsCalculationSum\r\n   MsgBox priceClm.Total\r\n   myTable.ShowTotals = False\r\nEnd Sub"]
[104,"セル操作","条件付き書式のセル背景色の取得","Range(\"A1\").DisplayFormat.Interior.ColorIndex"]
[105,"セル操作","入力のあるセルの数を求める","On Error Resume Next\r\nmsgbox worksheetFunction.CountIf(cells,\"<>\")\r\nOn Error Goto 0"]
[106,"セル操作","セル内文字配置","    Range(\"A1\").HorizontalAlignment = xlGeneral '標準\r\n \r\n    Range(\"A1\").HorizontalAlignment = xlLeft '左詰め（インデント）\r\n    \r\n    Range(\"A1\").HorizontalAlignment = xlCenter '中央揃え\r\n    \r\n    Range(\"A1\").HorizontalAlignment = xlRight '右詰め（インデント）\r\n    \r\n    Range(\"A1\").HorizontalAlignment = xlFill '繰り返し\r\n    \r\n    Range(\"A1\").HorizontalAlignment = xlJustify '両端揃え\r\n    \r\n    Range(\"A1\").HorizontalAlignment = xlCenterAcrossSelection '選択範囲内で中央\r\n    \r\n    Range(\"A1\").HorizontalAlignment = xlDistributed '均等割り付け（インデント）"]
[107,"セル操作","行の高さを設定する","Rows(1).RowHeight = 30"]
[108,"セル操作","画像を挿入する","With Worksheets(\"シート名\").Pictures.Insert(\"画像のファイルパスをここに\")\r\n    .Top = Worksheets(\"シート名\").Cells(1, 1).Top\r\n    .Left = Worksheets(\"シート名\").Cells(1, 1).Left\r\n    .Height = Worksheets(\"シート名\").Cells(1, 1).Height\r\n    .Placement = xlMoveAndSize'『セルに合わせて移動やサイズを変更する』の設定\r\nEnd With"]
[109,"セル操作","セルの表示形式で表示されている値を取得","Range(\"A1\").Text"]
[110,"セル操作","ピボットテーブル　フィルターボックスのフィルター操作","Sub 日付フィルター()\r\n    Sheet1.PivotTables(\"ピボットテーブル1\").PivotFields(\"営業日\").CurrentPage = Sheet2.Range(\"R3\").Value\r\nEnd Sub\r\n"]
[111,"セル操作","ダブルクリックしたら『済』入力（テーブルの列指定）","下記コードをシートモジュールへ貼付けてください。\r\nPrivate Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)\r\n    'このActivecellがA5～D25内にあるかどうか。Activecellを他セルに変えれば応用可能。\r\n    Dim zumiRng As Range\r\n    Set zumiRng = ListObjects(\"テーブル名\").ListColumns(\"『済』列の見出し名\").DataBodyRange\r\n    If Not Intersect(Target, zumiRng) Is Nothing Then 'Intersect(範囲１、範囲2）で共通する範囲を返す\r\n        Select Case Target.Value\r\n            Case \"\"\r\n                Target.Value = \"済\"\r\n            Case \"済\"\r\n                Target.Value = \"\"\r\n        End Select\r\n        Cancel = True\r\n    End If\r\nEnd Sub"]
[112,"セル操作","期間でオートフィルター（月で絞り込み）","Range(\"A1\").AutoFilter Field:=5, Criteria1:=xlFilterAllDatesInPeriodJanuary, Operator:=xlFilterDynamic'1月で絞り込み"]
[113,"セル操作","複数行非表示","Rows(\"1:7\").Hidden = True"]
[114,"セル操作","複数期間でフィルター","複数期間を同時に抽出するためにはフィルターは使えないため自作で処理を記述\r\n'リストボックスで『〇月、〇月』と複数の項目を選択したというていで\r\n    Dim kikan() As Variant\r\n    ReDim Preserve kikan(1 To 1, 1 To 2)  '二次元配列\r\n    Dim i As Long\r\n    For i = 0 To ListBox1.ListCount - 1\r\n        If ListBox1.Selected(i) Then\r\n            Dim selectDate As Date: selectDate = ListBox1.List(i, 1)\r\n            Dim myYear As String, myMonth As String\r\n            myYear = Year(selectDate)\r\n            myMonth = Month(selectDate)\r\n            Dim firstDay As String, lastDay As String\r\n            firstDay = DateSerial(myYear, myMonth, 1) '当月1日\r\n            lastDay = DateSerial(myYear, myMonth + 1, 0) '次の月の前日（月末）\r\n            kikan(UBound(kikan), 1) = firstDay\r\n            kikan(UBound(kikan), 2) = lastDay\r\n            Dim arr() As Variant\r\n            arr = Application.WorksheetFunction.Transpose(kikan) 'これで行と列を縦横入れ替える※0ではなく1が開始要素番号となる。\r\n            ReDim Preserve arr(1 To UBound(arr), 1 To UBound(kikan) + 1) '列なら増やせる。\r\n            kikan = Application.WorksheetFunction.Transpose(arr) '再び縦横を入れ替え元に戻す\r\n        End If\r\n    Next\r\n    \r\n    With Sheet1\r\n        'まず最終行取得\r\n        Dim lastRow As Long\r\n        lastRow = .Cells(Rows.Count, 2).End(xlUp).Row\r\n        Application.ScreenUpdating = False\r\n        'いったん範囲の行を全て非表示に\r\n        .Rows(\"6:\" & lastRow).Hidden = True\r\n        'ここから自作フィルター\r\n        Dim n As Long, k As Long\r\n        For n = 6 To lastRow\r\n            For k = 1 To UBound(kikan) - 1 '配列にemptyの行が一行入っているのでその前の行まで処理させる\r\n                Dim kiboubi As Date: kiboubi = .Cells(n, 11).Value\r\n                If kiboubi >= kikan(k, 1) And kiboubi <= kikan(k, 2) Then\r\n                    .Rows(n).Hidden = False\r\n                End If\r\n            Next k\r\n        Next n\r\n        Application.ScreenUpdating = True\r\n    End With\r\n"]
[115,"セル操作","テーブルの１列の値をデータの入力規則のリストへ設定","　　Dim dataTable As ListObject\r\n    Set dataTable = Worksheets（\"シート名\").ListObjects(\"テーブル名\")\r\n    Dim arr() As Variant\r\n    arr = dataTable.ListColumns(1).DataBodyRange.Value 'これでテーブルの１列目を配列として変数に代入。\r\n    With Range(\"A1\").Validation\r\n        .Delete\r\n        .Add Type:=xlValidateList,Operator:=xlEqual, _\r\n             Formula1:=Join(WorksheetFunction.Transpose(arr), \",\")\r\n    End With\r\n    Range(\"A1\").Value = arr(1, 1)"]
[116,"セル操作","データの入力規則のリストを設定する","　　With Range(\"A1\").Validation\r\n        .Delete\r\n        .Add Type:=xlValidateList,Operator:=xlEqual, _\r\n             Formula1:=\"田中,鈴木,佐藤\"\r\n    End With"]
[117,"セル操作","データの入力規則のリストを配列から設定する","    Dim arrId As Variant\r\n    arrId = array(\"田中\",\"鈴木\",\"佐藤\")\r\n    With Range(\"A1\").Validation\r\n        .Delete\r\n        .Add Type:=xlValidateList,Operator:=xlEqual, _\r\n             Formula1:=Join(arrId, \",\")\r\n    End With"]
[118,"セル操作","カタカナ以外(英数字）を半角へ変換","Sub カタカナ以外半角へ変換()\r\n    Dim rng As Range\r\n    Set rng = Range(\"E5\")\r\n    Dim i As Long\r\n    For i = 1 To Len(rng.Value)\r\n        Dim chkStr As String\r\n        chkStr = Mid(rng.Value, i, 1)\r\n        If chkStr Like \"[１-９]\" Or chkStr Like \"[Ａ-Ｚ]\" Then\r\n            Dim hankakuStr As String\r\n            hankakuStr = hankakuStr & StrConv(chkStr, vbNarrow)\r\n        Else\r\n            hankakuStr = hankakuStr & chkStr\r\n        End If\r\n    Next i\r\n    Range(\"E6\").Value = hankakuStr\r\nEnd Sub"]
[119,"セル操作","パワークエリのクエリ名全て取得","Sub 全クエリ名取得()\r\n    Dim myQuery As Object\r\n    For Each myQuery In ActiveWorkbook.Connections\r\n        Debug.Print myQuery.Name\r\n    Next\r\nEnd Sub\r\n"]
[120,"セル操作","特定のパワークエリのクエリを更新","Sub 特定のクエリを更新()\r\n    Dim myQuery As Object\r\n    For Each myQuery In ActiveWorkbook.Connections\r\n        If myQuery = \"クエリ - 商品クエリ\" Then '『クエリ -』のあとはクエリ名\r\n            myQuery.Refresh\r\n        End If\r\n    Next\r\nEnd Sub"]
[121,"セル操作","先週の土曜日","Sub 先週の土曜日()\r\n    MsgBox Date - Weekday(Date) '常に先週の土曜日\r\nEnd Sub"]
[122,"シート操作","シートの選択","Worksheets(\"〇〇\").Select"]
[123,"シート操作","シートオブジェクト名取得","Worksheets(\"シート名\").CodeName"]
[124,"シート操作","新規シート追加","Worksheets.Add"]
[125,"シート操作","新規シート追加＆名前変更","Worksheets.Add(After:=Sheet1, Count:=1).Name = \"データベース\""]
[126,"シート操作","シートをコピー＆挿入","    Sheets(\"●●\").Copy after:=Worksheets(\"●●\")’シートをコピー。afterは後ろに、beforeなら前に挿入される。\r\n    ActiveSheet.Name = \"〇〇〇\"’ついでに名前も付けておく。"]
[127,"シート操作","シートを削除する","    Application.DisplayAlerts = False’まずは削除していいですか？ のダイアログが表示されないようにする。\r\n        Sheets(\"〇〇\").Delete\r\n    Application.DisplayAlerts = True’ダイアログ非表示の解除"]
[128,"シート操作","シートを隠す","Sheets(\"シート名\").Visible=False"]
[129,"シート操作","シートイベント（値が変わったら実行）","シートモジュールで右上を『Change』にする。\r\nPrivate Sub Worksheet_Change(ByVal Target As Range)\r\n    If Target.Address = \"$D$3\" Then’もしD3セルの値が変更されたら実行される。\r\n        Msgbox \"変更されました\"\r\n    End If\r\nEnd Sub\r\n\r\n\r\n"]
[130,"シート操作","シートイベントを無効化","    Application.EnableEvents = False 'ここからイベントを無効にする。\r\n           'この処理中はイベントは発生しない。\r\n　　　　　 '例えばチェンジイベントの発生するセルへイベントなしで入力したいときなど\r\n    Application.EnableEvents = True 'ここからイベントを有効にする。"]
[131,"シート操作","右クリックイベント","Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)\r\n    MsgBox Target.Address(True, False)\r\n    Cancel = True’ここにTrueを入れると右クリック後のメニュー表示がなくなる。\r\nEnd Sub"]
[132,"シート操作","ハイパーリンク（各シート分）","    Dim firstShName As String, shName As String\r\n    firstShName = \"シート名\"\r\n    Dim i As Long\r\n    With Worksheets(firstShName)\r\n        For i = 2 To Worksheets.Count\r\n            shName = Worksheets(i).Name\r\n            .Hyperlinks.Add Anchor:=.Cells(2 + i, 2), Address:=\"\", _\r\n                                                                             SubAddress:=\"'\" & shName & \"'!A1\", _\r\n                                                                             TextToDisplay:=shName\r\n            Worksheets(i).Hyperlinks.Add Anchor:=Worksheets(i).Cells(1, 1), Address:=\"\", _\r\n                                                                             SubAddress:=\"'\" & firstShName & \"'!A1\", _\r\n                                                                             TextToDisplay:=\"←\" & firstShName & \"へ戻る\"\r\n        Next i\r\n    End With"]
[133,"シート操作","ハイパーリンク削除","Worksheets(\"シート名\").HyperLinks.Delete"]
[134,"シート操作","シートをPDFとして保存","    'PDFとして保存する\r\n    Worksheets(\"シート名\").ExportAsFixedFormat Type:=xlTypePDF,FileName:=\"ファイルパス\\ファイル名.pdf\""]
[135,"シート操作","シート全体をA4一枚に収まるように印刷","Sub 全体印刷()\r\n    With Worksheets(\"シート名\")\r\n         .PageSetup.Zoom = False\r\n         .PageSetup.FitToPagesTall = 1\r\n        .PageSetup.FitToPagesWide = 1\r\n        .PrintOut\r\n    End With\r\nEnd Sub\r\n"]
[136,"ブック操作","ブックの保存","Workbooks(\"ブック名\").SaveAs filename:=\"C:〇〇\\〇〇\\〇〇\\名前.xlsm\"'途中（C:〇〇\\〇〇\\〇〇）が場所指定、最後（\\名前.xlsm）がファイル名"]
[137,"ブック操作","バックアップ作成","Sub バックアップ()\r\n    '前提としてブックと同じフォルダ内に『バックアップ』というフォルダがあるイメージです。本日の日付、時間も名前に含めて作成。\r\n    ThisWorkbook.SaveCopyAs ThisWorkbook.Path & \"\\バックアップ\\VBA管理ツール\" & Format(Now, \"yyyyMMddhhmmss\") & \".xlsm\"\r\n    MsgBox \"バックアップを保存しました。\"\r\nEnd Sub"]
[138,"ブック操作","他のブックを操作","    Dim wb As Workbook\r\n    For Each wb In Workbooks \r\n        If wb.name = \"エクセルデータ.xlsm\" Then’『エクセルデータ』というファイル名のデータなら繰り返しを止める。\r\n           Exit For\r\n        End If\r\n    Next\r\n    Msgbox wb.Name'このwbに他ブックが入っているのであとはwbを操作していけばOk"]
[139,"ブック操作","Excelを最前面へ持ってくる"," 'エクセルを最前面へ　（アクティブ）\r\n AppActivate Application.Caption"]
[140,"ブック操作","読み取り専用で他ブック開いて閉じるまで","    Dim wb As Workbook\r\n    Set wb = Workbooks.Open(Filename:=ThisWorkbook.Path & \"\\\" & \"ファイル名\" , UpdateLinks:=0, ReadOnly:=True)\r\n\r\n　　'ここに何らかの処理\r\n\r\n　　'処理が終わったら閉じる作用\r\n    Application.DisplayAlerts = False '『保存しますか？』のダイヤログを出ないようにする。\r\n        wb.Close '開いたブックを閉じる\r\n    Application.DisplayAlerts = True 'ダイヤログ制限を解除"]
[141,"ブック操作","他ブックをシートオブジェクト名で指定","Sub 他ブックへ値を入力()\r\n    '『元ブック』データを開いて値を入力してみよう！『データベース』\r\n    Dim wb As Workbook\r\n    Set wb = Workbooks.Open(Filename:=ThisWorkbook.Path & \"\\元ブック.xlsx\")\r\n    Dim sh As Worksheet\r\n    For Each sh In wb.Worksheets\r\n        If sh.CodeName = \"Sheet1\" Then\r\n            sh.Range(\"A1\").Value = \"見つけた\"\r\n        End If\r\n    Next\r\nEnd Sub"]
[142,"ブック操作","Excel97-2003形式で保存"," wb.SaveCopyAs (ThisWorkbook.Path & \"\\バックアップ\", FileFormat:=xlWorkbookNormal)"]
[143,"ブック操作","フォルダ内の全ファイル分転記処理","Sub データ集計()\r\n    '開くファイル名指定\r\n    Dim myFileName As String\r\n    myFileName = Dir(ThisWorkbook.Path & \"\\フォルダ名\\*.xlsx\")\r\n    If myFileName = \"\" Then\r\n        MsgBox \"ファイルが見つかりません。\"\r\n        Exit Sub\r\n    End If\r\n    '繰り返し\r\n    Dim toWs As Worksheet: Set toWs = Sheet1'転記先（マクロを書いたブック）のシートを代入しておく\r\n    Do\r\n        Dim toLastRow As Long: toLastRow = toWs.Cells(Rows.Count, 1).End(xlUp).Row\r\n         'ファイルを開く\r\n        Dim fromWb As Workbook\r\n        Set fromWb = Workbooks.Open(ThisWorkbook.Path & \"\\フォルダ名\\\" & myFileName)\r\n         '転記作業\r\n        With fromWb.Worksheets(\"開いたブックのシート名\")\r\n            Dim fromLastRow As Long: fromLastRow = .Cells(Rows.Count, 1).End(xlUp).Row\r\n            .Range(.Cells(2, 1), .Cells(fromLastRow, 9)).Copy toWs.Cells(toLastRow + 1, 1)\r\n        End With\r\n         'ファイルを閉じる\r\n        fromWb.Close savechanges:=False\r\n         '次のファイルへ\r\n        myFileName = Dir()\r\n    Loop Until myFileName = \"\"\r\n    'メッセージボックス\r\n    MsgBox \"完了しました。\"\r\nEnd Sub\r\n"]
[144,"ブック操作","数式バー非表示","Application.DisplayFormulaBar = False'Trueで表示"]
[145,"ブック操作","リボン非表示","Application.ExecuteExcel4Macro \"SHOW.TOOLBAR(\"\"Ribbon\"\", False)\""]
[146,"ファイル・フォルダ操作","ファイル検索","Sub ファイル検索()\r\n    Dim myFile As String, myPath As String\r\n    myPath = ’\"ファイルの場所をここに入れる\"例）C:\\User\\〇〇〇\\Desktop\\\"など\r\n    'ファイル検索\r\n    myFile = Dir(myPath & \"ファイル名.xlsm\", vbNormal)\r\n  \r\n    If myFile <> \"\" Then\r\n        Workbooks.Open Filename:=myPath & myFile\r\n    Else\r\n        MsgBox \"ファイルが見つかりません\"\r\n    End If\r\nEnd Sub"]
[147,"ファイル・フォルダ操作","フォルダ内ファイル検索","Sub ファイル名一覧取得()\r\n    Sheet1.Range(\"A:A\").Value = \"\"\r\n    \r\n    Dim myFile As String, filePath As String\r\n    filePath = ThisWorkbook.Path\r\n    myFile = Dir(filePath & \"\\*月分売上.xlsx\")\r\n    \r\n    If myFile = \"\" Then\r\n        MsgBox \"ファイルがみつかりません。\"\r\n        Exit Sub\r\n    End If\r\n    \r\n    Dim i As Long\r\n    i = 1\r\n    \r\n    \r\n    Do\r\n        Sheet1.Cells(i, 1).Value = myFile\r\n        i = i + 1\r\n        myFile = Dir()\r\n    Loop Until myFile = \"\"\r\n    \r\nEnd Sub"]
[148,"ファイル・フォルダ操作","選択ダイアログで選んだファイルを開く","Sub 選んだファイル開く()\r\n    Dim cnt As Long\r\n    Dim myFile As Variant '「ファイルを開く」の戻り値用\r\n    myFile = Application.GetOpenFilename(\"CSVファイル(*.csv),*.csv\")’カッコ内の左がファイル名,右がファイルの種類\r\n　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　’※このダイアログで選んだファイル名がmyFileに入る。\r\n    If myFile = False Then\r\n        Exit Sub\r\n    End If\r\n    '開く\r\n    Dim wb As Workbook\r\n    Set wb = Workbooks.Open(myFile)\r\nEnd Sub"]
[149,"ファイル・フォルダ操作","複数選択したファイルを開く","Sub Sample7()\r\n    Dim fileName As Variant\r\n    fileName = Application.GetOpenFilename(FileFilter:=\"Microsoft Excelブック,*.xls?\", _\r\n                                       MultiSelect:=True)\r\n    If IsArray(fileName) Then\r\n        Msgbox \"開く処理\"\r\n    Else\r\n        MsgBox \"キャンセルされました\"\r\n    End If\r\nEnd Sub"]
[150,"ファイル・フォルダ操作","FSO(FileSystemObject)の参照方法","ツール⇒参照設定⇒『Microsoft Scripting Runtime』に☑を入れる。これで準備完了"]
[151,"ファイル・フォルダ操作","FSO（参照設定なし）","Dim myFSO as Object\r\nset myFSO = createobject(\"Scripting.FileSystemObject\")"]
[152,"ファイル・フォルダ操作","FSOのファイルコピー","Dim myFSO as New FileSystemObject\r\nmyFSO.CopyFile Source:=\"C:\\Users\\〇〇〇\\Desktop\\コピーされるデータ.xlsm\", Destination:=\"C:\\Users\\〇〇〇\\Desktop\\バックアップ.xlsm\""]
[153,"ファイル・フォルダ操作","FSOでフォルダ作成"," fso.CreateFolder (ThisWorkbook.Path & \"\\\" & \"新フォルダ\")"]
[154,"ファイル・フォルダ操作","FSOでフォルダバックアップ","    Dim FSO As New FileSystemObject\r\n    Dim FSO As Object\r\n    Set FSO = CreateObject(\"Scripting.FileSystemObject\")\r\n    FSO.CopyFolder ThisWorkbook.Path & \"\\売上\", ThisWorkbook.Path & \"\\バックアップ\" & Format(Date, \"yyyyMMdd\")"]
[155,"ファイル・フォルダ操作","フォルダ内削除","    Dim myFSO As New FileSystemObject\r\n    Dim myFolder As Folder\r\n    Dim myFiles As Files, MyFile As File\r\n         \r\n    Set myFolder = myFSO.GetFolder(ThisWorkbook.Path & \"\\作成データ\")\r\n    Set myFiles = myFolder.Files\r\n    \r\n    For Each MyFile In myFiles\r\n        MyFile.Delete\r\n    Next"]
[156,"ファイル・フォルダ操作","ファイル一覧ハイパーリンク","Sub ファイル一覧取得()\r\n     Dim myFile As String, myFolder As String, filePath As String\r\n     \r\n     filePath = ThisWorkbook.Path\r\n     myFile = Dir(filePath & \"\\*.*\")\r\n\r\n     If myFile = \"\" Then\r\n         MsgBox \"ファイルがみつかりません。\"\r\n         Exit Sub\r\n     End If\r\n    \r\n     Dim i As Long\r\n     i = 0\r\n     \r\n     With Sheet1\r\n        Do\r\n           .Hyperlinks.Add Anchor:=.Cells(2 + i, 2), Address:=ThisWorkbook.Path & \"\\\" & myFile, _\r\n                                                                                SubAddress:=\"\", _\r\n                                                                                TextToDisplay:=myFile\r\n           i = i + 1\r\n           myFile = Dir()\r\n        Loop Until myFile = \"\"\r\n     End With\r\n     MsgBox \"完了しました。\"\r\n  \r\nEnd Sub\r\n"]
[157,"ファイル・フォルダ操作","選んだファイルのパスと名前","    Dim myFile As String\r\n    myFile = Application.GetOpenFilename() 'Excelファイルのみ表示する\r\n    MsgBox myFile"]
[158,"ファイル・フォルダ操作","選んだファイルのパスと名前とハイパーリンク","Sub ファイル一覧取得2()\r\n     \r\n     Sheet1.Range(\"B:B\").Clear\r\n     \r\n     Dim myFile As String, myFolder As String, filePath As String, folderPath As String\r\n     With Application.FileDialog(msoFileDialogFolderPicker)\r\n        If .Show = True Then\r\n            folderPath = .SelectedItems(1)\r\n        End If\r\n    End With\r\n     \r\n     myFile = Dir(folderPath & \"\\*.*\")\r\n\r\n     If myFile = \"\" Then\r\n         MsgBox \"ファイルがみつかりません。\"\r\n         Exit Sub\r\n     End If\r\n    \r\n     Dim i As Long\r\n     i = 0\r\n     \r\n     With Sheet1\r\n        Do\r\n           .Hyperlinks.Add Anchor:=.Cells(2 + i, 2), Address:=folderPath & \"\\\" & myFile, _\r\n                                                                                SubAddress:=\"\", _\r\n                                                                                TextToDisplay:=myFile\r\n           i = i + 1\r\n           myFile = Dir()\r\n        Loop Until myFile = \"\"\r\n    End With\r\n     MsgBox \"完了しました。\"\r\n    \r\nEnd Sub"]
[159,"ファイル・フォルダ操作","データ集計","Option Explicit\r\nDim toWb As Workbook\r\nSub データ集計()\r\n    Set toWb = ThisWorkbook\r\n    Dim fso As New FileSystemObject\r\n    Dim myFolder As Object\r\n    Set myFolder = fso.GetFolder(\"C:\\Users\\taaam\\OneDrive\\デスクトップ\\まとめシートへ選手権\\支店売上\")\r\n    Dim myFiles As Files\r\n    Set myFiles = myFolder.Files\r\n    Dim myFile As File\r\n    For Each myFile In myFiles\r\n        Call データ転記(myFile)\r\n    Next\r\n    MsgBox \"完了しました。\"\r\nEnd Sub\r\n\r\nSub データ転記(ByVal myFile As File)\r\n    Dim toLastRow As Long\r\n    toLastRow = toWb.Worksheets(\"売上\").Cells(Rows.Count, 1).End(xlUp).Row\r\n    Dim fromWb As Workbook\r\n    Set fromWb = Workbooks.Open(myFile)\r\n    With fromWb.Worksheets(\"売上情報\")\r\n        Dim fromLastRow As Long\r\n        fromLastRow = .Cells(Rows.Count, 1).End(xlUp).Row\r\n        Dim myRng As Range\r\n        Set myRng = .Range(.Cells(2, 1), .Cells(fromLastRow, \"I\"))\r\n        myRng.Copy toWb.Worksheets(\"売上\").Cells(toLastRow + 1, 1)\r\n    End With\r\n    fromWb.Close\r\nEnd Sub"]
[160,"ファイル・フォルダ操作","ファイル名変更","Sub Sample()\r\n    Name \"C:\\売上.xlsx\" As \"C:\\売上管理.xlsx\"         'リネーム\r\n    Name \"C:\\売上管理.xlsx\" As \"C:\\売上フォルダ\\売上管理.xlsx\"   '移動\r\nEnd Sub"]
[161,"ファイル・フォルダ操作","ファイル名に日付を入れる","Dim myFileName As String\r\nmyFileName = \"仮のファイル名\" & \"(\" & Format(Date, \"yyyymmdd\") & Format(Now, \"hhmmss\") & \")\"\r\n"]
[162,"ファイル・フォルダ操作","デスクトップパスを取得","    Dim myPath As String, WSH As Variant\r\n    Set WSH = CreateObject(\"WScript.Shell\")\r\n    myPath =  WSH.SpecialFolders(\"Desktop\") & \"\\\"\r\n    Msgbox \"デスクトップパスは\" & myPath & \"です。\""]
[163,"ファイル・フォルダ操作","フォルダ選択ダイアログ","Sub フォルダ選択ダイアログ()\r\n    With Application.FileDialog(msoFileDialogFolderPicker)\r\n        If .Show = True Then\r\n            MsgBox \"選択されたフォルダは\" & .SelectedItems(1) & \"』です。\"\r\n        End If\r\n    End With\r\nEnd Sub"]
[164,"ファイル・フォルダ操作","選択したフォルダ内ファイル名一覧取得","Sub 選択したフォルダ内ファイル名一覧取得()\r\n    With Application.FileDialog(msoFileDialogFolderPicker)\r\n        Worksheets(\"ファイル名一覧\").Range(\"A:A\").Value = \"\"\r\n        Dim myFile As String, folderPath As String\r\n        If .Show = True Then\r\n            folderPath = .SelectedItems(1)\r\n        End If\r\n        myFile = Dir(folderPath & \"\\*\")\r\n    End With\r\n    If myFile = \"\" Then\r\n        MsgBox \"ファイルがみつかりません。\"\r\n        Exit Sub\r\n    End If\r\n    Worksheets(\"ファイル名一覧\").Range(\"A1\").Value = \"『\" & folderPath & \"』の中のファイル一覧\"\r\n    Dim i As Long\r\n    i = 1\r\n    Do\r\n        Worksheets(\"ファイル名一覧\").Cells(i + 1, 1).Value = myFile\r\n        i = i + 1\r\n        myFile = Dir()\r\n    Loop Until myFile = \"\"\r\nEnd Sub\r\n"]
[165,"ファイル・フォルダ操作","選択したフォルダ内ファイル名と拡張子名を一覧取得","Sub 選択したフォルダ内ファイル名一覧取得()\r\n    Const shName As String = \"ファイル名一覧\" 'シート名を入力しておいてください。\r\n    With Application.FileDialog(msoFileDialogFolderPicker)\r\n        Dim myFile As String, folderPath As String\r\n        If .Show <> True Then\r\n           Exit Sub\r\n        End If\r\n        folderPath = .SelectedItems(1)\r\n        myFile = Dir(folderPath & \"\\*\")\r\n    End With\r\n    If myFile = \"\" Then\r\n        MsgBox \"ファイルがみつかりません。\"\r\n        Exit Sub\r\n    End If\r\n    With Worksheets(shName)\r\n        .Range(\"A:B\").Value = \"\"\r\n        .Range(\"C1\").Value = \"\"\r\n        .Range(\"A1\").Value = \"ファイル名\"\r\n        .Range(\"B1\").Value = \"拡張子\"\r\n        .Range(\"C1\").Value = \"『\" & folderPath & \"』の中のファイル一覧です。\"\r\n        Dim i As Long\r\n        i = 1\r\n        Do\r\n            Dim myFileName As String, kakutyoushi As String\r\n            myFileName = Left(myFile, InStr(myFile, \".\") - 1)\r\n            kakutyoushi = Mid(myFile, InStr(myFile, \".\") + Len(\".\"))\r\n            .Cells(i + 1, 1).Value = myFileName\r\n            .Cells(i + 1, 2).Value = kakutyoushi\r\n            i = i + 1\r\n            myFile = Dir()\r\n        Loop Until myFile = \"\"\r\n    End With\r\nEnd Sub"]
[166,"ファイル・フォルダ操作","ファイル名一括変更ツール※A列に変更前、B列に変更後のファイル名を並べてください。","Sub ファイル名一括変更()\r\n    Const SH_NAME As String = \"ファイル名一覧\" 'シート名を入力しておいてください。\r\n    If MsgBox(prompt:=\"本当にファイル名を一括変更してもよろしいですか？\", Buttons:=vbYesNoCancel) <> vbYes Then\r\n        Exit Sub\r\n    End If\r\n    Dim lastRow As Long: lastRow = Worksheets(SH_NAME).Cells(Rows.Count, 1).End(xlUp).Row\r\n    With Worksheets(SH_NAME)\r\n        Dim beforeFileName As String, afterFileName As String, kakutyoushi As String, folderPath As String\r\n        folderPath = .Range(\"D2\").Value\r\n        Dim i As Long\r\n        For i = 2 To lastRow\r\n            beforeFileName = .Cells(i, 1).Value\r\n            afterFileName = .Cells(i, 2).Value\r\n            kakutyoushi = .Cells(i, 3).Value\r\n            If beforeFileName <> kakutyoushi Then\r\n                Name folderPath & \"\\\" & beforeFileName & \".\" & kakutyoushi As folderPath & \"\\\" & afterFileName & \".\" & kakutyoushi\r\n            End If\r\n        Next i\r\n    End With\r\n    MsgBox \"変更しました。\"\r\nEnd Sub\r\n"]
[167,"ファイル・フォルダ操作","フォルダ内のファイル数取得(FSO)","    Dim myFSO As Object\r\n    Set myFSO = CreateObject(\"Scripting.FileSystemObject\")\r\n    Dim fileCnt As Long: fileCnt = myFSO.GetFolder(tikanFolderPath).Files.Count 'ファイル数取得\r\n    Msgbox \"ファイルは\" & fileCnt & \"個あります。\""]
[168,"Outlook操作","メール送信","Sub メール送信()\r\n    '参照設定している場合は次の1行\r\n    'Dim myOlApp As New Outlook.Application\r\n    \r\n    '参照設定不要のコードは下記の２行   \r\n    Dim myOlApp As Object\r\n    Set myOlApp = CreateObject(\"Outlook.Application\") \r\n\r\n    Dim myMail As Outlook.MailItem    \r\n    Set myMail = myOlApp.CreateItem(olMailItem)\r\n    With myMail\r\n        .To = \"fadfadsfadf@gggggmail.com\"'ここに送信先メールアドレス\r\n        .Subject = \"エクセルVBAについて\"'件名\r\n        .Body = \"お世話になっております。\"'本文\r\n        .Send'送信\r\n    End With\r\n        \r\n    myOlApp.Quit\r\n    Set myOlApp = Nothing\r\nEnd Sub"]
[169,"Outlook操作","メール連続送信","Sub メール連続送信()\r\n    '参照設定している場合は次の1行\r\n    'Dim myOlApp As New Outlook.Application\r\n    \r\n    '参照設定不要のコードは下記の２行\r\n    Dim myOlApp As Object\r\n    Set myOlApp = CreateObject(\"Outlook.Application\")\r\n\r\n    Dim myMail As Outlook.MailItem\r\n    '仮に『送信先』シートのA列に氏名、B列に送信先メールアドレス一覧があるとします。\r\n    With Worksheets(\"送信先\")\r\n        Dim lastRow As Long: lastRow = .Cells(Rows.Count, 1).End(xlUp).Row\r\n        Dim i As Long\r\n        For i = 1 To lastRow\r\n            Set myMail = myOlApp.CreateItem(olMailItem)\r\n            Dim toMail As String: toMail = Worksheets(\"送信先\").Cells(i, 2).Value 'メール\r\n            Dim toUser As String: toUser = Worksheets(\"送信先\").Cells(i, 1).Value '送信先\r\n            myMail.To = toMail\r\n            myMail.Subject = \"エクセルVBAについて\"\r\n            myMail.Body = toUser & \"様\" & vbCrLf & _\r\n                                  \"お世話になっております。\"\r\n            myMail.Send\r\n        Next i\r\n    End With\r\n    myOlApp.Quit\r\n    Set myOlApp = Nothing\r\nEnd Sub\r\n"]
[170,"Outlook操作","直近３件の受信メール一覧を取得","Sub 受信メール一覧()\r\n     '直近３件の受信メールの情報を下記セルへ取り出す\r\n    Dim myOlApp As New Outlook.Application\r\n    Dim myNs As Outlook.Namespace\r\n    Set myNs = myOlApp.GetNamespace(\"MAPI\")\r\n    Dim myFolder As Outlook.Folder\r\n    Set myFolder = myNs.GetDefaultFolder(olFolderInbox)\r\n    Dim i As Long, n As Long\r\n    n = 1\r\n    With myFolder.Items\r\n        .Sort \"[ReceivedTime]\", Descending:=True\r\n        For i = 1 To 3  'もしすべての件数を抽出するのであれば『1 To .count』にする。\r\n            On Error Resume Next  '送付できなかったメールのエラーを回避するために記述\r\n            Sheet11.Cells(30 + n, 3).Value = .Item(i).ReceivedTime\r\n            Sheet11.Cells(30 + n, 4).Value = .Item(i).SenderName\r\n            Sheet11.Cells(30 + n, 5).Value = .Item(i).Subject\r\n            Sheet11.Cells(30 + n, 6).Value = .Item(i).SenderEmailAddress\r\n            On Error GoTo 0\r\n            n = n + 1\r\n        Next i\r\n    End With\r\n    myOlApp.Quit\r\n    Set myOlApp = Nothing\r\nEnd Sub"]
[171,"Outlook操作","メールを作成（画面に表示）","Sub メール作成()\r\n    '参照設定している場合は次の1行\r\n    'Dim myOlApp As New Outlook.Application\r\n    \r\n    '参照設定不要のコードは下記の２行   \r\n    Dim myOlApp As Object\r\n    Set myOlApp = CreateObject(\"Outlook.Application\") \r\n\r\n    Dim myMail As Outlook.MailItem    \r\n    Set myMail = myOlApp.CreateItem(olMailItem)\r\n    With myMail\r\n        .To = \"fadfadsfadf@gggggmail.com\"'ここに送信先メールアドレス\r\n        .Subject = \"エクセルVBAについて\"'件名\r\n        .Body = \"お世話になっております。\"'本文\r\n        .Display\r\n    End With\r\nEnd Sub"]
[172,"Outlook操作","連絡先一覧取得","Sub 連絡先一覧()\r\n\r\n    Dim myOlApp As New Outlook.Application\r\n    Dim myNs As Outlook.Namespace\r\n    Set myNs = myOlApp.GetNamespace(\"MAPI\")\r\n    Dim myFolder As Outlook.Folder\r\n    Set myFolder = myNs.GetDefaultFolder(olFolderContacts)\r\n    Stop\r\n    myOlApp.Quit\r\n    Set myOlApp = Nothing\r\nEnd Sub"]
[173,"Outlook操作","連絡先情報取得","Sub 連絡先情報取得()\r\n    Dim myOlApp As New Outlook.Application\r\n    Dim myNs As Outlook.Namespace\r\n    Set myNs = myOlApp.GetNamespace(\"MAPI\")\r\n    Dim myFolder As Outlook.Folder\r\n    Set myFolder = myNs.GetDefaultFolder(olFolderContacts)\r\n    With myFolder.Items\r\n        Dim i As Long\r\n        For i = 1 To 3\r\n            Worksheets(\"連絡先\").Cells(i, 1).Value = .Item(i).LastName\r\n            Worksheets(\"連絡先\").Cells(i, 2).Value = .Item(i).FirstName\r\n            Worksheets(\"連絡先\").Cells(i, 3).Value = .Item(i).Email1Address\r\n        Next i\r\n    End With\r\n    myOlApp.Quit\r\n    Set myOlApp = Nothing\r\nEnd Sub"]
[174,"Outlook操作","連絡先検索","Sub 連絡先検索()\r\n    Dim myOlApp As New Outlook.Application\r\n    Dim myNs As Outlook.Namespace\r\n    Set myNs = myOlApp.GetNamespace(\"MAPI\")\r\n    Dim myFolder As Outlook.Folder\r\n    Set myFolder = myNs.GetDefaultFolder(olFolderContacts)\r\n    Dim olItem As Object\r\n    Dim myName As String\r\n    myName = Replace(Worksheets(\"連絡先\").Range(\"A1\").Value, \"　\", \" \")\r\n    With myFolder.Items\r\n        Set olItem = .Find(\"[FullName] = '\" & myName & \"'\")\r\n    End With\r\n    Worksheets(\"連絡先\").Range(\"B1\").Value = olItem.Email1Address\r\n    myOlApp.Quit\r\n    Set myOlApp = Nothing\r\nEnd Sub\r\n"]
[175,"Outlook操作","新規連絡先登録","Sub 新規連絡先登録()\r\n    Dim myOlApp As New Outlook.Application\r\n    Dim myNs As Outlook.Namespace\r\n    Set myNs = myOlApp.GetNamespace(\"MAPI\")\r\n    Dim inboxFolder As Outlook.Folder\r\n    Set inboxFolder = myNs.GetDefaultFolder(olFolderInbox)\r\n    Dim contactsFolder As Outlook.Folder\r\n    Set contactsFolder = myNs.GetDefaultFolder(olFolderContacts)\r\n    Dim senderMail As String\r\n    Dim foundMail As Object\r\n    With inboxFolder.Items\r\n        .Sort \"[ReceivedTime]\", Descending:=True\r\n        Dim i As Long\r\n        For i = 1 To 5 'もしすべての件数を抽出するのであれば『1 To .Count 』にする。\r\n            senderMail = .Item(i).SenderEmailAddress\r\n            Set foundMail = contactsFolder.Items.Find(\"[Email1Address]='\" & senderMail & \"'\")\r\n            If foundMail Is Nothing Then\r\n                Dim myContact As Outlook.ContactItem\r\n                Set myContact = myOlApp.CreateItem(olContactItem)\r\n                myContact.FullName = .Item(i).SenderName\r\n                myContact.Email1Address = .Item(i).SenderEmailAddress\r\n                myContact.Save\r\n            End If\r\n        Next i\r\n    End With\r\n    myOlApp.Quit\r\n    Set myOlApp = Nothing\r\n    MsgBox \"完了しました\"\r\nEnd Sub\r\n"]
[176,"ユーザーフォーム操作","ユーザーフォーム開く","    'ユーザーフォームのオブジェクト名（プロパティで確認）.Showで開く\r\n    UserForm1.Show"]
[177,"ユーザーフォーム操作","ユーザーフォーム表示位置","画面中央に表示する（特にマルチディスプレイを使用しているときは必須）\r\nPrivate Sub UserForm_Initialize()\r\n    Me.StartUpPosition = 0\r\n    Me.Top = Application.Top + ((Application.Height - Me.Height) / 2)\r\n    Me.Left = Application.Left + ((Application.Width - Me.Width) / 2)\r\nEnd Sub"]
[178,"ユーザーフォーム操作","ユーザーフォームに値を渡す","sub フォームに値を渡す()\r\n     Userform1.textbox1.value = \"あいうえお\" ' 結論⇒ユーザーフォームに引数は渡せない。対策⇒フォームを呼び出す前に値をセットしてしまう。\r\n     Userform1.show\r\n    \r\n　　 With Userform1.Listbox1\r\n　　 　  'パターン①リストボックスへ配列を渡す　\r\n         .List = 配列変数　’このときListboxのプロパティーでcolumnCountを変更し、表示列を増やしておかないと表示されないので注意\r\n\r\n        ’パターン②セル範囲ごとリストへ追加するコード\r\n    　　 .List = Range(\"A1：C10\").Value\r\n\r\n        'パターン③リストボックスへ値を一つ一つ単発で入力するには\r\n　　 　　.AddItem rng.value 'rng.valueは例。\r\n     End with\r\nend sub"]
[179,"ユーザーフォーム操作","ユーザーフォーム開くときにリストへ入力","    Private Sub UserForm_initialize()'これはフォームを開いたときのみ実行するという意味\r\n        With ListBox1\r\n　　　      .List = Range(\"A1：C10\").Value　\r\n        End With\r\n    End Sub"]
[180,"ユーザーフォーム操作","リストボックスに複数列を設定する","    'ユーザーフォーム上にリストボックスを配置\r\n    'リストボックスのプロパティーのcolumn.countを表示したい列数にする（例えば５列なら５を入力）\r\n    '列幅はcolumnWidthにそれぞれの列幅を設定する。５列なら『30;30;30;30;30;』と打つと幅30ptがそれぞれの列に設定できる。\r\n    'その後、値を抜き取るときはListbox1.List(0,1)など、配列と同じように抽出する。\r\n    '今回は例として全シート名をリストとして入力する\r\n    With Me.ListBox1\r\n        Dim ws As Worksheet\r\n        For Each ws In Worksheets\r\n            .AddItem \"\"\r\n            .List(.ListCount - 1, 0) = ws.Name\r\n            .List(.ListCount - 1, 1) = ws.Range(\"B1\").Value\r\n        Next\r\n    End With"]
[181,"ユーザーフォーム操作","リストボックスの注意点","ListboxのヘッダーはRowSourceを使用した場合にのみ表示可能。AddItemなどでデータを追加した場合は設定不可。\r\nただし、RowSourceを使用した場合は行追加ができないので要注意"]
[182,"ユーザーフォーム操作","リストボックスで選択されている値","    With Me.ListBox1\r\n        .List(.ListIndex, 0)'例えば２列目を取得したいのであれば.List(.ListIndex,1)となる\r\n    End With"]
[183,"ユーザーフォーム操作","リストボックスで選択がなければ終了","If Me.listBox1.listIndex = -1 Then Exit Sub"]
[184,"ユーザーフォーム操作","Deleteキーでリストボックスから削除","Private Sub ListBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)\r\n    If KeyCode = 46 Then’もしDeleteキーが押されたら\r\n        Dim listIndex As Long\r\n        listIndex = Me.ListBox1.listIndex\r\n        Me.ListBox1.RemoveItem listIndex\r\n    End If\r\nEnd Sub"]
[185,"ユーザーフォーム操作","コンボボックス（プルダウンリスト）設定"," 　With ComboBox1     \r\n            .AddItem rng.Value’ひとつづつ追加          \r\n　　　　　’範囲ごと追加\r\n        　.List = Range(\"A1:C10\").Value\r\n    End With\r\n"]
[186,"ユーザーフォーム操作","テキストボックスにフォーカス","textbox1.Setfocus"]
[187,"ユーザーフォーム操作","テキストボックスを無効化","textbox1.enabled = false"]
[188,"ユーザーフォーム操作","テキストボックスでエンターキーでマクロ発生","左上の『（General）』を『TextBox1』に変更。\r\n'右上の『（Declarations）』をKeyDownに変更。\r\nPrivate Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)\r\n    If KeyCode = vbKeyReturn Then\r\n        MsgBox \"エンターキー\"\r\n    End If\r\nEnd Sub"]
[189,"ユーザーフォーム操作","ユーザーフォーム閉じる","ユーザーフォームモジュールに記述する場合\r\nUnload me\r\n'標準モジュールに記述する場合\r\nUnload Userform1'ユーザーフォーム名を記述する。"]
[190,"ユーザーフォーム操作","ユーザーフォーム自動で閉じる","↓ユーザーフォームモジュールに記述\r\nPrivate Sub UserForm_Activate()\r\n　　’ユーザーフォームの中で記述する\r\n    Application.OnTime Now + TimeValue(\"00:00:02\"), \"閉じる\"　’２秒後に『フォーム閉じる』マクロを実行する。\r\nEnd Sub\r\n\r\n'↓ここからは標準モジュールへ記述\r\nSub フォーム閉じる()\r\n    Unload Userform1'ユーザーフォーム名を記述\r\nEnd Sub"]
[191,"ユーザーフォーム操作","ユーザーフォームのすべてのコントロール","Userform.Controls"]
[192,"ユーザーフォーム操作","ユーザーフォームの１番目のコントロール","Userform.Controls(1)"]
[193,"ユーザーフォーム操作","ユーザーフォームのi番目のテキストボックス","    Dim i As Long\r\n    i = 1 to 5\r\n        Msgbox UserForm1.Controls(\"TextBox\" & i).Value\r\n    next i "]
[194,"ユーザーフォーム操作","ユーザーフォームのコンボボックスに重複なしのデータを入力","Private Sub UserForm_Initialize()'ユーザーフォーム開く直前にイベント発生。フォームモジュールに記述\r\n    Dim myDic As Object\r\n    Dim rng As Variant, rngs As Range\r\n    Set myDic = CreateObject(\"Scripting.Dictionary\")\r\n    With Worksheets(\"シート名\")\r\n        Set rngs = .ListObjects(\"テーブル名\").ListColumns(2).DataBodyRange\r\n    End With\r\n    For Each rng In rngs\r\n        If Not myDic.Exists(rng.Value) = True Then\r\n            myDic.Add rng.Value, 1\r\n        End If\r\n    Next\r\n    Dim myKey As Variant\r\n    myKey = myDic.Keys\r\n    Me.categoryCmbBox1.List = myKey\r\n    Set myDic = Nothing\r\nEnd Sub"]
[195,"ユーザーフォーム操作","プログレスバー実例","Dim startWidth As Double 'モジュールレベルで宣言\r\n\r\n'ここからはフォームを開く前にバーの幅を0にしておく。\r\nPrivate Sub UserForm_Initialize()\r\n    startWidth = Label1.Width '一番最初のバーの全体幅を代入しておく。\r\n    Label1.Width = 0 'バーの幅を0にする。\r\n\r\nEnd Sub\r\n\r\nPrivate Sub CommandButton1_Click()\r\n    Dim total As Long\r\n    total = 10000\r\n    Dim addWidth As Double\r\n    addWidth = startWidth / total\r\n    Dim myWidth As Double\r\n    myWidth = 0\r\n    Dim i As Long\r\n    \r\n    For i = 1 To total\r\n        Cells(i, 1).Value = i & \"行目\"\r\n        myWidth = myWidth + addWidth\r\n        Label1.Width = Round(myWidth)\r\n        DoEvents\r\n        Label1.Width = i / total * startWidth\r\n        Label2.Caption = Round(i / total * 100) & \"%処理完了\"\r\n        Me.Repaint\r\n    Next i\r\n    Unload Me\r\n    MsgBox \"処理終了\"\r\n    \r\nEnd Sub\r\n\r\n\r\n\r\n"]
[196,"ユーザーフォーム操作","プログレスバー（現状バー）","①最初にユーザーフォーム作成、そしてＬａｂｅｌ1とＬａｂｅｌ2を設置。\r\nLabel1はバー,Label2は外枠の表示に使う。\r\n’下準備→プロパティーウィンドウでLabel1のBackColorを青に変える。Label2のBackStyleを0-～にする。Label2を前面にする。\r\n'まずはプロシージャレベルで下記を定義\r\nDim myAddWidth As Double\r\n’ここからはフォームを開いた時にバーの幅を0にする作業\r\nPrivate Sub UserForm_Initialize()\r\n    myAddWidth = Label1.Width / 100\r\n    Label1.Width = 0\r\nEnd Sub\r\n\r\n’ここからはコマンドボタン「開始」を押したら実行するコード\r\nPrivate Sub CommandButton1_Click()\r\n    Dim i As Long, j As Long\r\n    For i = 1 To 100\r\n        For j = 1 To 5000000: Next j\r\n        Label1.Width = Label1.Width + myAddWidth\r\n        Label2.Caption = i & \"%\"\r\n        DoEvents\r\n    Next i\r\n    MsgBox \"処理終了\"\r\n    Unload Me\r\nEnd Sub"]
[197,"ユーザーフォーム操作","フォームコントロールとActiveXの違い","フォームコントロール\r\n・これはボタンを押したときとか、チェックボックスへチェックしたときとかをきっかけにマクロを実行するときなどに使う。\r\n・開発⇒挿入⇒フォームを選択　※こっちはVBAからの参照には適しないが、マクロ実行のきっかけには最適\r\n\r\n次はActiveXについて\r\n・デザインモードクリック⇒フォーム選択（このフォームは上記とは異なり、VBAからの参照に適している）"]
[198,"ユーザーフォーム操作","どのボタンからでも同じ処理実行","これを標準モジュールの一番上に配置\r\nPrivate cmdBtn(1 To 42) As New Class1 'コマンドボタンとクラスを紐づけ\r\n'これを標準モジュールのSubプロシージャに記述\r\n 'コマンドボタンとクラスを紐づけ\r\n    Dim i As Long\r\n    For i = 1 To 42\r\n        cmdBtn(i).NewClass Controls(\"CommandButton\" & i), i\r\n    Next\r\n’ここから下はクラスモジュール上に配置\r\nPrivate WithEvents Btn As MSForms.CommandButton\r\nPrivate Index As Integer\r\n\r\nPublic Sub NewClass(ByVal cmdBtn As MSForms.CommandButton, ByVal i As Integer)\r\n    Set Btn = cmdBtn\r\n    'コマンドボタンのインデックス番号を格納\r\n    Index = i\r\nEnd Sub\r\nPrivate Sub Btn_Click()\r\n    If UserForm1.Controls(\"CommandButton\" & Index).Caption = \"\" Then\r\n        Exit Sub\r\n    End If\r\n    Dim myYear As Long, myMonth As Long, myDay As Long\r\n    myYear = UserForm1.ComboBox1.Value\r\n    myMonth = UserForm1.monthComboBox.Value\r\n    myDay = UserForm1.Controls(\"CommandButton\" & Index).Caption\r\n    If UserForm1.toBox.BackColor = RGB(255, 255, 0) Then\r\n        UserForm1.toBox.Value = DateSerial(myYear, myMonth, myDay)\r\n    Else\r\n        UserForm1.fromBox.Value = DateSerial(myYear, myMonth, myDay)\r\n        UserForm1.toBox.BackColor = RGB(255, 255, 0)\r\n        UserForm1.fromBox.BackColor = RGB(255, 255, 255)\r\n    End If\r\nEnd Sub\r\n\r\n\r\n\r\n"]
[199,"ユーザーフォーム操作","テーブルの１列目の値をリストボックスへ追加","Private Sub UserForm_Initialize()\r\n    'テーブルの１列目の値をリストボックスへ設定\r\n    Dim dataTable As ListObject\r\n    Set dataTable = Worskheets(\"シート名\").ListObjects(\"テーブル名\")\r\n    Dim arr() As Variant\r\n    arr = dataTable.ListColumns(1).DataBodyRange.Value 'これでテーブルの１列目を配列として変数に代入。\r\n    Me.ListBox1.List = arr\r\nEnd Sub"]
[200,"ブラウザ操作","IE操作（URL開く）","    Dim IE As New InternetExplorer\n    IE.navigate \"http://〇〇〇\"’開きたいURL\n    IE.Visible = True’IEを見える化する（表示する）。デスクトップで確認ができるようになる。\n    'ブラウザ（IE）画面がすべて更新されるのを待つ\n    While IE.Busy = True Or IE.readyState < READYSTATE_COMPLETE\n        DoEvents\n    Wend"]
[201,"ブラウザ操作","IE操作（待機）","    'ブラウザ（IE）画面がすべて更新されるのを待つ\n    While IE.Busy = True Or IE.readyState < READYSTATE_COMPLETE\n        DoEvents\n    Wend"]
[202,"ブラウザ操作","IE操作（開いているウィンドウを指定）","Sub 起動中IE操作()\n    Dim sh As Object\n    Set sh = CreateObject(\"Shell.Application\")'Shell.Applicationとはエクスプローラーを操作するためのもの。\n    \n    Dim ie As InternetExplorer\n    Set ie = Nothing\n    \n    '起動中のWindowを一つずつ調べる。\n    Dim win As Object\n   \n    For Each  win In sh.Windows\n        If (TypeOf  win Is InternetExplorer) Then 'InternetExplorerであれば実行\n            If  win.Document.Title Like \"*〇〇*\" = True Then 'タイトルに〇〇が含まれるなら実行\n                Set ie =  win'winをieに渡す（これで変数ieにInternetExplorerのウィンドウが入る）\n                Exit For’ループを抜ける\n            End If\n        End If\n    Next\n\n    If Not (ie Is Nothing) Then'変数ieにウィンドウが入っているなら処理を実行する。\n        ie.Visible = True’まずはIEを見える化する。\n        'ここに処理を書く\n    End If     \n        "]
[203,"ブラウザ操作","iE自動スクロール","ie.navigate \"JavaScript:scrollTo(0,\" & ie.document.body.scrollHeight & \")\""]
[204,"ブラウザ操作","IE操作","Sub ネット操作()\n    'まずはIEのアドレスをセットする作業\n    Dim IE As New InternetExplorer\n    Dim i As Long\n    IE.navigate \"http://〇〇〇\" '開きたいURL\n    IE.Visible = True 'IEを見える化する（表示する）。デスクトップで確認ができるようになる。\n    'ブラウザ（IE）画面がすべて更新されるのを待つ\n    While IE.Busy = True Or IE.readyState < READYSTATE_COMPLETE\n        DoEvents\n    Wend\n    'HTMLドキュメントを設定する\n    Dim doc As HTMLDocument\n    Set doc = IE.document\n    Dim inp, inp2 As IHTMLInputElement\n    Set inp = doc.getElementsByName(\"userNo\")(0)\n    inp.Value = \"100728\"\n    \n    'ログイン画面のパスワード入力作業\n    Set inp2 = doc.getElementsByName(\"password\")(0)\n    \n    inp2.Value = \"123456abc\"\n    \n    \n    'ログイン開始のボタンを押す作業\n    Dim btn As IHTMLInputElement\n    \n    Set btn = doc.getElementsByTagName(\"input\")(1)\n    \n    btn.form.submit\n    \n    '待機\n    While IE.Busy = True Or IE.readyState < READYSTATE_COMPLETE\n        DoEvents\n    Wend\n    \n    Dim objIE As Object\n    \n    Set objIE = CreateObject(\"InternetExplorer.Application\")\n    \n    objIE.navigate \"http://************\"\n    objIE.Visible = True\n    \n    Do Until objIE.Busy = False\n        DoEvents\n    Loop\n    \n    For i = 0 To objIE.document.Links.Length - 1\n        If objIE.document.Links(i).href = \"javascript:doAction(01)\" Then\n            objIE.document.Links(i).Click\n            Exit For\n        End If\n    Next i\n\nEnd Sub"]
[205,"ブラウザ操作","IEフレーム指定","Private Declare Function SetForegroundWindow Lib \"user32\" (ByVal hWnd As Long) As Long 'ウィンドウを最前面表示するための定義\nSub 起動中IE操作()\n    'Shell.ApplicationのCOMをインスタンス化する。\n    Dim sh As Object\n    Set sh = CreateObject(\"Shell.Application\")\n    \n    'InternetExplorerのCOMをインスタンス化する。\n    Dim ie As InternetExplorer\n    Set ie = Nothing\n    \n\n    '起動中のWindowを一つずつ調べる。\n    Dim w As Object\n    Dim nowWin As String\n    nowWin = \"\"\n    \n    For Each w In sh.Windows\n        'InternetExplorerであれば\n        If (TypeOf w Is InternetExplorer) Then\n            'かつ、タイトルが一致すれば\n            If w.Document.Title Like \"*メンタエクセルサイト*\" = True Then\n                'そのインスタンスを変数ieにセットしループを抜けます。\n                \n                Set ie = w\n                nowWin = \"top\" '今のウィンドウが検索画面なら文字を代入\n                Exit For\n                \n            ElseIf w.Document.Title Like \"*その他のサイト*\" = True Then\n                'そのインスタンスを変数ieにセットしループを抜けます。\n                Set ie = w\n                \n                Exit For\n            End If\n        End If\n    Next\n    \n    '変数ieがnotingでなければ\n    If Not (ie Is Nothing) Then\n       \n        ie.Visible = True\n        \n        \n        \n        Dim objFrame As FramesCollection\n        Dim frameDoc As IHTMLDocument\n        Dim obj As Object\n        Dim i As Long\n        \n        If nowWin = \"\" Then 'もし検索画面以外にいるのなら実行する。\n            Set objFrame = ie.Document.frames\n            Set frameDoc = objFrame(\"leftFrame\").Document 'メインフレームを指定\n            Do Until objFrame(\"mainFrame\").Document.Title Like \"*検索*\" = True '検索画面まで戻るを押し続ける。\n                Set obj = frameDoc.getElementById(\"modoru\")\n                obj.Click '戻るをクリック\n                While ie.Busy = True Or ie.ReadyState < READYSTATE_COMPLETE '待機\n                    DoEvents\n                Wend\n               \n            Loop\n                \n            'ここから待機の作業を入れる。\n            While ie.Busy = True Or ie.ReadyState < READYSTATE_COMPLETE\n                DoEvents\n            Wend\n            \n        End If\n        \n        'フレームを指定\n        \n        \n       \n        Set objFrame = ie.Document.frames\n       \n        Set frameDoc = objFrame(\"mainFrame\").Document 'メインフレームを指定\n        \n        Set obj = frameDoc.getElementsByTagName(\"a\")\n        obj.Item(0).Click 'ボタンをクリックさせる\n       \n       \n       \n        'ここから待機の作業を入れる。\n       \n        While ie.Busy = True Or ie.ReadyState < READYSTATE_COMPLETE\n            DoEvents\n        Wend\n        \n        \n       \n        'ここからは宛名入力作業(フォームのテキストボックスへ）\n        Dim txtObj As HTMLInputElement\n        Dim objForm As Object\n        \n        Set objForm = frameDoc.forms(0)\n        \n        Set txtObj = objForm.Document.getElementsByName(\"kensaku.joken.data.kojinNo\")(0) '最後の（0）が重要\n        \n        txtObj.Value = ActiveCell.Offset(0, 1).Value\n        \n       \n        '検索ボタンをクリック\n        Dim btnObj As HTMLInputElement\n        Set btnObj = objForm.Document.getElementsByName(\"search\")(0) '最後の（0）が重要\n        \n        btnObj.Click\n        \n        \n        SetForegroundWindow (ie.hWnd) 'IE画面の最前面表示\n        \n    '変数ieがnothingのままであれば\n    Else\n        MsgBox \"見つかりません\"\n        \n    End If\n            \n            \nEnd Sub\n"]
[206,"ブラウザ操作","IE一致を探す","    'ここから口座を選択する作業\n    Dim kNum As Variant　’配列を入れるためにはvariant型を指定しないといけない。\n    Dim num As Variant\n    Dim str As String　’HTML上文字として口座番号が入力されているため、検索する数字も文字として探すため。\n    ’まずは下記の一行で複数のオブジェクトをｋNumへ配列として代入。※最後に（0）といれないので該当するものすべてが入る。\n    Set kNum =ie.Document.frames(\"mainFrame\").Document.getElementsByName(\"zaisanYochokinMeisaiData.kozaNo\")\n    str = Range(\"C7\").Value\n    \n    For Each num In kNum　’For Each　で配列内のすべてにアクセスし、numに代入していく。\n        \n        If num.Value = str Then’もしnumの値と探している文字列が一致すればExit Forで繰り返しを終わらせる。\n            \n            Exit For\n        End If\n    Next num\n\n    num.Click　’その該当するオブジェクトをクリックする。\n    \n    While ie.Busy = True Or ie.ReadyState < READYSTATE_COMPLETE\n        DoEvents\n    Wend\n    \n    Set btn = ie.Document.frames(\"mainFrame\").Document.getElementsByName(\"kousin2\")(0)\n    \n    btn.Click '修正クリック\n"]
[207,"ブラウザ操作","IE一致valueを探す","　　Dim var As Variant\n    Set var = ie.document.frames(\"mainFrame\").document.getElementsByTagName(\"input\")\n    Dim n As Variant\n    Dim z As Long\n    \n    For Each n In var\n        If n.Value = \"管理\" Then\n            Exit For\n        End If\n    Next n\n    n.Click"]
[208,"ブラウザ操作","IE 特殊な指定方法","Dim chk As HTMLInputElement\n                Set chk = ie.document.frames(\"mainFrame\").document.getElementById(\"NO\" & i & \"\")"]
[209,"ブラウザ操作","IE getElementBy","idが指定できる場合はsと（0）は不要\n    Set obj = getElementById(\"modoru\")\n    'name,classの場合は（0）を最後につけるのとsをつける。\n    Set obj = getElementsByName(\"namae\")(0)\n    'なお配列として代入する場合は（0）は不要\n    Dim obj As Variant\n    Dim num As Variant\n    Set obj = getElementsByTab(\"a\")\n    For Each num In obj\n        If num.innertext = \"更新\" Then\n              Exit For\n        End If\n    Next num"]
[210,"ブラウザ操作","IE最前面表示","Private Declare Function SetForegroundWindow Lib \"user32\" (ByVal hWnd As Long) As Long \nSetForegroundWindow (ie.hWnd) 'IE画面の最前面表示"]
[211,"ブラウザ操作","IE javascriptポップクリック","Private Declare Function GetLastActivePopup Lib \"user32\" (ByVal hwnd As Long) As Long\nPrivate Declare Function PostMessage Lib \"user32.dll\" Alias \"PostMessageA\" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long\n\nDim tagInput As Object\n        Dim n As Long　　　’流れとしては初めにjavascriptを使用してリンクをクリック。その後出現したポップアップをjacascriptでOKを押す。\n        Dim h As Long\n        Dim t As Single\n    \n       Set tagInput = ie.Document.frames(\"mainFrame\").Document.getElementsByTagName(\"input\")\n\n        For n = 0 To tagInput.Length - 1\n            If tagInput(n).Value = \"登録↓\" Then\n                ’これが最初にポップアップがでるボタンをクリックする作業　　　　　　'↓ここはシングルクォーテーションじゃないとだめ。\n              ie.document.frames(\"mainFrame\").document.Script.setTimeout \"javascript:document.getElementsByName('shobunBtn')(0).click();\", 200\n                t = Timer: Do While Timer - t < 1: DoEvents: Loop\n                SendKeys \"{ENTER}\"’これでポップアップ内のOKをクリック。\n\n                Exit For\n            End If\n        Next\n"]
[212,"ブラウザ操作","IEで隠れコード","もしhiddenが設定されているHTMLはVBAで読み込んでも出てこないことがある。その場合、name=hidden　とかを探す。それを指定する。"]
[213,"ブラウザ操作","IE チェックボックス","　　 '取消にチェック\n    Dim torikesi As HTMLInputElement\n    Set torikesi = ie.document.frames(\"mainFrame\").document.getElementById(\"SELTORIKESHI\")\n    torikesi.Checked = True\n    '上記でできなければtorikesi.clickでもＯＫ"]
[214,"ブラウザ操作","IE テキストボックス選択","    Set obj = IE.document.getElementsByName(\"〇〇\")\n    obj.Focus   'これで入力が反映されなかったところとかに入力できたりする。"]
[215,"ブラウザ操作","chrome操作初期設定（Selenium設定)","下記のURLを開き、『Release page』をクリック\r\nhttp://florentbr.github.io/SeleniumBasic/\r\n\r\n次に『SeleniumBasic-2.0.9.0.exe』をクリック\r\n　※もしかするとバージョンが変わっているかもです。\r\n\r\n\r\nインストールされたらそれを開き、\r\nNext→I accept the agreementにチェック→Next→Next→Install→Finish\r\n\r\n（次にWebドライバーインストール＆更新）\r\n\r\nエクスプローラー\r\n↓\r\nWindows(C:)\r\n↓\r\nユーザー\r\n↓\r\nアカウント名\r\n↓\r\n表示タブで『隠しファイル』にチェック\r\n↓\r\nAppData\r\n↓\r\nLocal\r\n↓\r\nSeleniumBasic\r\n\r\nこのフォルダ内の『chromedriver』を最新にする必要があります。\r\nまずはこのSeleniumBasicというフォルダのショートカットを作成してデスクトップにでも貼り付けておきます。\r\n\r\n次に下記URLからWebドライバーをインストールします。\r\nhttps://sites.google.com/a/chromium.org/chromedriver/downloads\r\n\r\nインストールするバージョンを現時点のchromeのバージョンに合わせる必要があります。\r\n\r\nchrome開く→右上の…が縦になっているアイコンをクリック→ヘルプ→Googlechromeについて→そこでバージョンを確認できます。\r\n\r\n先ほどのサイトでそのバージョンに一番数字の近い『ChromeDriver 〇〇.〇.〇〇〇〇～』をクリック\r\n次に『chromedriver_win32.zip』をクリック\r\n\r\nインストールしたら開く→その中の最新のWebドライバーをデスクトップにショートカットを作っていたフォルダ内にペーストして古いchromedriverと入れ替えます。\r\n\r\n\r\n（最後にExcel側で参照設定）\r\n\r\n開発タブ→VBE→ツールタブ→参照設定→『Selenium Type Library』にチェック\r\n\r\nこれで準備は完了\r\n"]
[216,"ブラウザ操作","chrome開く","Sub chrome開く()\r\n    'Googleクロームでサイトを開く\r\n    Dim driver As New Selenium.WebDriver\r\n    driver.Start \"chrome\"\r\n    driver.Get \"https://～\"'開きたいサイトのURL\r\n    driver.Wait 10\r\n    Stop'これでわざと一時停止している。再開する場合はF5\r\n    driver.Close\r\n    Set driver = Nothing\r\nEnd Sub\r\n"]
[217,"ブラウザ操作","chromeでボタンクリック","Sub idで操作()\r\n    Dim driver As New Selenium.WebDriver\r\n    driver.Start \"chrome\"\r\n    driver.Get \"https://～\"'開生きたいサイトURL\r\n    driver.Wait 10\r\n　　'押したいボタンの要素を取得するには'chromeのデベロッパーツールを使用する。\r\n　　'サイト上で右クリック→『検証』→デベロッパーツールの左上角のマウスのようなアイコンクリックして、ボタンをクリック\r\n    'そのHTMLの上で右クリック→copy→Copy outerHMTLで要素をコピー\r\n    'その後イミディエイトウィンドウにでも貼り付けてその中の『id=\"〇〇\"』の〇〇の部分を下記の〇〇に入力\r\n    Dim elm As Selenium.WebElement\r\n    Set elm = driver.FindElementById(\"〇〇\")\r\n    elm.Click\r\n    \r\n    Stop\r\n    driver.Close\r\n    Set driver = Nothing\r\n\r\nEnd Sub"]
[218,"ブラウザ操作","chromeの入力欄にテキストを入力する","　　'chromeの開き方は他のマクロを参考にしてください。\r\n　　Dim elm As Selenium.WebElement\r\n    Set elm = driver.FindElementByName(\"your-name\")\r\n    elm.SendKeys \"メンタ太郎\""]
[219,"ブラウザ操作","selenium 全画像保存","Option Explicit\r\n\r\nSub 全画像保存()\r\n    Dim driver As New Selenium.WebDriver\r\n    driver.Start \"chrome\"\r\n    driver.Get \"https://～/\"\r\n    driver.Wait 10\r\n    Dim elms As Selenium.WebElements\r\n    Set elms = driver.FindElementsByTag(\"img\") '画像(タグがimgの)全ての要素を取得\r\n    Dim i As Long\r\n    For i = 1 To elms.Count\r\n        Cells(i, 1).Value = i\r\n        Dim imgUrl As String: imgUrl = elms(i).Attribute(\"src\") '画像のリンクを取得\r\n        With Sheet1.Pictures.Insert(imgUrl)\r\n            .Top = Cells(i, 2).Top\r\n            .Left = Cells(i, 2).Left\r\n            .Width = Cells(i, 2).Width\r\n            .Height = Cells(i, 2).Height\r\n        End With\r\n        Cells(i, 3).Value = imgUrl\r\n    Next\r\n    driver.Close\r\n    Set driver = Nothing\r\nEnd Sub\r\n"]
[220,"図形・グラフ操作","図形の挿入","　　With Sheets(\"シート名\").Range(\"E3:F3\")\r\n        Sheets(\"シート名\").Shapes.AddShape(Type:=msoShapeLeftArrow, _’矢印を挿入 ’タイプを調べたければネットでmsoShapeで検索\r\n        Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height).Select '　　　　　　\r\n    End With"]
[221,"図形・グラフ操作","図形の削除","    Dim sb As Shapes\r\n    Set sb = Shapes\r\n    Dim str As Object\r\n    For Each str In sb\r\n        If str.name Like \"*Left Arrow*\" = True Then\r\n            str.Delete\r\n        End If\r\n    Next"]
[222,"図形・グラフ操作","図形の移動","    With Sheets(\"シート\").Shapes(5)\r\n        .Left = Sheets(\"シート\").Range(\"Q4\").Left’セルQ４に左端を合わせる\r\n        .Top = Range(\"Q4\").Top\r\n    End With"]
[223,"図形・グラフ操作","オブジェクト選択モード","Sub オブジェクト選択モード()\r\n    With Application.CommandBars.FindControl(ID:=182)\r\n        If .State = msoButtonUp Then .Execute\r\n    End With\r\nEnd Sub"]
[224,"図形・グラフ操作","選択中のオブジェクト名","?selection.name　’イミディエイトウィンドウで入力すると選択中のオブジェクトの名前がわかる。"]
[225,"図形・グラフ操作","複数図形選択名前","もし二つ選択しているなら\r\ndebug.print Selection.ShapeRange(1).Name\r\ndebug.print Selection.ShapeRange(2).Name"]
[226,"図形・グラフ操作","動く図形","    With Sheets(\"シート名\").Shapes(\"Right Arrow 1\")'矢印図形が挿入されていること前提\r\n        Dim i As Long: i = 0\r\n        Dim n As Long: n = 0\r\n        .Left = 417\r\n        .Top = 105\r\n        Do Until n = 2\r\n            Do Until i = 10\r\n                .IncrementLeft 1\r\n                i = i + 1\r\n                DoEvents\r\n            Loop\r\n            i = 0\r\n            Do Until i = 10\r\n                .IncrementLeft -1\r\n                i = i + 1\r\n                DoEvents\r\n            Loop\r\n            i = 0\r\n        n = n + 1\r\n        Loop\r\n        Do Until i = 5\r\n            .IncrementLeft 1\r\n            i = i + 1\r\n            DoEvents\r\n        Loop\r\n    End With"]
[227,"図形・グラフ操作","図形繋ぐ（横）","Sub 図形つなぐ横()\r\n    Dim shape1 As Shape, shape2 As Shape, shp As Shape\r\n    Set shape1 = Selection.ShapeRange(1)\r\n    Set shape2 = Sheets(\"Sheet1\").Shapes.AddShape(Type:=msoShapeRectangle, Left:=shape1.Left + 200, Top:=shape1.Top, Width:=shape1.Width, Height:=shape1.Height)\r\n    \r\n    Dim shapeCon As Shape\r\n    Set shapeCon = Sheets(\"Sheet1\").Shapes.AddConnector(msoConnectorStraight, 1, 1, 1, 1)\r\n    With shapeCon\r\n        .ConnectorFormat.BeginConnect shape1, 1’この最後の数字は図形のどの位置につなぐかの指定。\r\n        .ConnectorFormat.EndConnect shape2, 1\r\n        .RerouteConnections’これを書くと上記で指定したのがリセットされて、一番短距離でつなぎ直される。\r\n    End With\r\n  　shape2.Fill.ForeColor.RGB = RGB(255, 255, 255)'塗りつぶし色\r\n    shapeCon.Line.ForeColor.RGB = RGB(0, 0, 0)’枠線色\r\n    shape2.Line.ForeColor.RGB = RGB(0, 0, 0)\r\n    shape2.TextFrame.Characters.Text = \"\"\r\n　　shape2.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(0, 0, 0)’文字色黒\r\n    shape2.Select\r\nEnd Sub"]
[228,"図形・グラフ操作","図形繋ぐ（下）","Sub 図形つなぐ横()\r\n    Dim shape1 As Shape, shape2 As Shape, shp As Shape\r\n    Set shape1 = Selection.ShapeRange(1)\r\n    Set shape2 = Sheets(\"Sheet1\").Shapes.AddShape(Type:=msoShapeRectangle, Left:=shape1.Left, Top:=shape1.Top+100, Width:=shape1.Width, Height:=shape1.Height)\r\n    \r\n    Dim shapeCon As Shape\r\n    Set shapeCon = Sheets(\"Sheet1\").Shapes.AddConnector(msoConnectorStraight, 1, 1, 1, 1)\r\n    With shapeCon\r\n        .ConnectorFormat.BeginConnect shape1, 1\r\n        .ConnectorFormat.EndConnect shape2, 1\r\n        .RerouteConnections\r\n    End With\r\n    shape2.Fill.ForeColor.RGB = RGB(255, 255, 255)'塗りつぶし色\r\n    shapeCon.Line.ForeColor.RGB = RGB(0, 0, 0)’枠線色\r\n    shape2.Line.ForeColor.RGB = RGB(0, 0, 0)\r\n    shape2.TextFrame.Characters.Text = \"\"\r\n　　shape2.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(0, 0, 0)’文字色黒\r\n    shape2.Select\r\nEnd Sub"]
[229,"図形・グラフ操作","繋がった図形名","　　Dim shapeCon As Shape\r\n    Set shapeCon = Sheets(\"Sheet1\").Shapes.AddConnector(msoConnectorStraight, 1, 1, 1, 1)\r\n    With shapeCon\r\n        .ConnectorFormat.BeginConnect shape1, 1\r\n        .ConnectorFormat.EndConnect shape2, 1\r\n        .RerouteConnections\r\n    End With\r\n    ’ここからつながった図形の名前を出す。\r\n　　Dim shapeC As Shape\r\n    Set shapeC = shapeCon.ConnectorFormat.BeginConnectedShape\r\n    MsgBox shapeC.Name\r\n    "]
[230,"図形・グラフ操作","コネクタが繋がっている支店","con.ConnectorFormat.BeginConnectionSite"]
[231,"図形・グラフ操作","追いかけて図形を表示","図形矢印を画面に追いかけて表示\r\nPrivate Sub Worksheet_SelectionChange(ByVal Target As Range)\r\n    With ActiveWindow.VisibleRange\r\n    Me.Shapes(\"Left Arrow 2\").Left = .Left + .Width - Me.Shapes(\"Left Arrow 2\").Width - 50\r\n    Me.Shapes(\"Left Arrow 2\").Top = .Top + .Height - Me.Shapes(\"Left Arrow 2\").Height - 10\r\n    End With\r\nEnd Sub\r\n"]
[232,"図形・グラフ操作","円グラフ操作","    With ActiveSheet.Shapes.AddChart.Chart '円グラフ\r\n        \r\n        .ChartType = xlPie\r\n        .SetSourceData Source:=Sheets(\"グラフ\").Range(\"A2:I3\")\r\n        \r\n    End With\r\n    \r\n    'ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).HasDataLabels = True 'これで数値を表示する。\r\n    ActiveSheet.ChartObjects(1).Chart.ApplyDataLabels ShowCategoryName:=True 'これで分類名を表示する\r\n    ActiveSheet.ChartObjects(1).Chart.ApplyDataLabels ShowCategoryName:=True, ShowPercentage:=True'これなら％も表示できる"]
[233,"図形・グラフ操作","グラフ等すべて削除","ActiveSheet.ChartObjects.Delete"]
[234,"図形・グラフ操作","図形の配置されているセル範囲","　Dim rng As Range\r\n　With ActiveSheet.Shapes(1)\r\n　　Set rng = Range(.TopLeftCell, .BottomRightCell)\r\n　End With\r\n\r\n　MsgBox rng.Address(False, False)\r\n\r\nEnd Sub"]
[235,"構文","メッセージボックス","MsgBox \"文字列\", Title:=\"2週間以内通知予定\""]
[236,"構文","メッセージ分岐","    If MsgBox(prompt:=\"○○しますか？\", Buttons:=vbOKCancel) = vbOK Then\r\n        'ここに処理を書く\r\n    End If"]
[237,"構文","メッセージ分岐②","    Dim choice As Integer\r\n    choice = MsgBox(prompt:=\"○○しますか？\", Buttons:=vbYesNoCancel, Title:=\"作業名\")\r\n    If choice = vbYes Then\r\n        Range(\"A1\").Value = \"○\"\r\n    ElseIf choice = vbNo Then\r\n        Range(\"A1\").Value = \"×\"\r\n    End If"]
[238,"構文","文字を含むかどうか","    Dim userName As String\r\n    userName = \"田中\"\r\n    If Range(\"A1\").Value Like \"*\" & userName & \"*\" = True Then  'A1セルに『田中』という文字が含まれるなら実行。\r\n          MsgBox \"含まれます。\"\r\n    End If"]
[239,"構文","文字を含む（複数文字）","    Dim myText As String\r\n    myText = \"はい、よろしくお願いいたします。\"\r\n\r\n    '変数myTextに『あ、い、う、え、お』のいずれかが含まれていれば処理実行\r\n    If myText Like \"*[あいうえお]*\" = True Then\r\n        MsgBox \"含まれています。\"\r\n    End If"]
[240,"構文","指定した文字（複数）以外が含まれているか","    Dim myText As String\r\n    myText = \"123番地\"\r\n\r\n    '変数myTextに『あ、い、う、え、お』のいずれかが含まれていないならば処理実行\r\n    If myText Like \"*[!0123456789]*\" = True Then\r\n        MsgBox \"数字以外が含まれています。\"\r\n    End If\r\n"]
[241,"構文","指定した文字範囲を含むかどうか","    Dim myText As String\r\n    myText = \"Amiさん\"\r\n\r\n    '変数myTextに『A-Z』のいずれかが含まれているならば処理実行\r\n    'ただし、左側を小さく（数字なら0に近く、アルファベットならAに近い方）しなければなりません。\r\n    If myText Like \"*[A-Z]*\" = True Then\r\n        MsgBox \"アルファベットが含まれています。\"\r\n    End If\r\n"]
[242,"構文","指定した文字範囲以外を含むかどうか","    Dim myText As String\r\n    myText = \"鈴木健太\"\r\n\r\n    '変数myTextに『A-Z』以外の文字が含まれているならば処理実行\r\n    'ただし、左側を小さく（数字なら0に近く、アルファベットならAに近い方）しなければなりません。\r\n    If myText Like \"*[!A-Z]*\" = True Then\r\n        MsgBox \"アルファベットのみで記述してください。\"\r\n    End If\r\n"]
[243,"構文","文字かどうか","    If TypeName(ActiveCell.Value) = \"String\" Then\r\n           MsgBox \"選択中のセルの値は文字列です。\"\r\n    End If"]
[244,"構文","数値かどうかチェック","    Dim val As Variant\r\n    val = \"あいうえお\"'←ここにチェックしたい値を入れます。\r\n    Select Case IsNumeric(val)\r\n        Case True\r\n            MsgBox \"数字です。\"\r\n        Case False\r\n            MsgBox \"数字ではありません。\"\r\n    End Select\r\n"]
[245,"構文","日付かどうか","    Dim val As Variant\r\n    val = \"2022/09/11\" '←ここにチェックしたい値を入れます。他）Activecell.value\r\n    Select Case IsDate(val)\r\n        Case True\r\n            MsgBox \"日付です。\"\r\n        Case False\r\n            MsgBox \"日付ではありません。\"\r\n    End Select\r\n\r\n"]
[246,"構文","Case","    Select Case Range(\"A1\").Value\r\n         Case 値1\r\n                 MsgBox (\"1\")\r\n         Case 値2\r\n                 MsgBox (\"2\")\r\n         Case Else\r\n                 MsgBox (\"それ以外\")\r\n    End Select"]
[247,"構文","Cace(〇〇以上、〇〇以下）","    If Range(\"A1\").Value <> \"\" Then\r\n        Select Case Range(\"A1\").Value\r\n            Case Is >= 80\r\n                MsgBox \"合格\"\r\n            Case Is >= 70\r\n                MsgBox \"おしい！\"\r\n            Case Is >= 0\r\n                MsgBox \"もう少し勉強しましょう。\"\r\n        End Select\r\n    End If"]
[248,"構文","Case(グループ分け）","    Select Case Range(\"A1\").Value\r\n        Case 1, 2, 3 '1か2か3だった場合\r\n            MsgBox (\"グループ1\")\r\n        Case 4, 5, 6\r\n            MsgBox (\"グループ2\")\r\n        Case Else\r\n            MsgBox (\"それ以外\")\r\n    End Select"]
[249,"構文","Case（含むかどうか数パターンver）","     Dim myText As String: myText = \"鈴木　さとし\"\r\n     Select Case True 'はじめにTrueを書く\r\n        Case myText Like \"*田中*\" '『田中』を含んでいれば実行\r\n            MsgBox \"田中さん\"\r\n        Case myText Like \"*鈴木*\"\r\n            MsgBox \"鈴木さん\"\r\n        Case myText Like \"*松田*\"\r\n            MsgBox \"松田さん\"\r\n    End Select\r\n"]
[250,"構文","Case(範囲内かどうか）","    Dim a As Long\r\n    a = 7\r\n    Select Case　a \r\n        Case 1 To 10 '１～10の間なら実行\r\n            Msgbox \"１～１０の範囲内です。\"\r\n    End Select"]
[251,"構文","文字を分ける","    Dim tmp As Variant\r\n    tmp = Split(\"あいうえお\", \"う\") '『う』の前と後で分ける。\r\n    msgbox \"前の文字は『\" & tmp(0) & \"』で、後の文字は『\" & tmp(1) & \"』です。\""]
[252,"構文","テキスト改行","MsgBox \"情報が入力されました。\" & vbCrLf & \"住所等に誤りがないか確認してください。\""]
[253,"構文","エラー無視","    On Error Resume Next\r\n  　  'エラー無視したい何らかの処理をここに記述\r\n    On Error GoTo 0 '←これを記述した以降はエラー無視されなくなる。"]
[254,"構文","エラー（GoTo)","Sub エラー対策()\r\n    On Error GoTo errorLabel\r\n   \r\n       '処理をここに書く。\r\n        \r\n    Exit Sub 'エラーが起こらないならここで処理終了。\r\nerrorLabel: 'エラーならここに飛んでくる。\r\n    MsgBox \"エラーです。入力し直してください。\" 'エラー時の処理\r\nEnd Sub"]
[255,"構文","１か月前","    If DateAdd(\"m\", -1, Date) < Range(\"F5\").Value Then 'もし今日から１か月前がF5セルの日よりも前なら実行　※Date = 今日\r\n        MsgBox \"１か月前は\" & DateAdd(\"m\", -1, Date) & \"です。\" & vbLf & Range(\"F5\").Value & \"より前です。\"\r\n    End If"]
[256,"構文","１週間前","    If DateAdd(\"ww\", -1, Date) < Range(\"F5\").Value Then 'もし今日から一週間前がF5の日よりも前なら実行\r\n        MsgBox \"一週間前は\" & DateAdd(\"ww\", -1, Date) & \"です。\" & ｖｂLf & Range(\"F5\").Value & \"より前です。\"\r\n    End If"]
[257,"構文","繰返し処理（～まで）","    Dim i As Long\r\n    Do Until i>=5'『i』が5以上になるまで繰り返す\r\n        Msgbox i\r\n        i = i + 1\r\n    Loop"]
[258,"構文","繰返し処理（～の間）","    Dim i As Long\r\n    Do While i<=5'『i』が5以下の間繰り返す\r\n        Msgbox i\r\n        i = i + 1\r\n    Loop"]
[259,"構文","マクロ中断（デバッグ）","Stop ’をコードの途中に記述する。そこで中断される。"]
[260,"構文","デザインモード","開発タブの中のデザインモードを押すと、編集できないボタンなどが動くようになる。"]
[261,"構文","配列変数に配列を格納する","    Dim arrVar(3) As String\r\n    arrVar(0) = \"リンゴ\"\r\n    arrVar(1)=\"ミカン\"\r\n    arrVar(2)=\"バナナ\"\r\n    arrVar(3)=\"ブドウ\"\r\n    Dim arr() As variant '配列を格納する変数は必ずVariant型じゃないといけません。\r\n    arr = arrVar 'setは不要\r\n    Msgbox join(arrVar)"]
[262,"構文","配列（静的）","    Dim tainou(4) As String   ’これは変数に５つの配列を入れる部屋を作るという意味\r\n    tainou(0) = \"一番目の値だよ\"　’（0）が一番目\r\n    tainou(1) =  \"二番目の値だよ\"　’（1）が二番目\r\n    msgbox tainou(0)　'これで『一番目の値だよ』が表示される。"]
[263,"構文","動的配列","    Dim tainou() As String   ’要素数を最初は指定しないパターン（動的配列）\r\n    redim tainou(2)'ここで定義　※つまり動的配列はRedimで定義しないと使えないということ。\r\n    tainou(0) = \"一番目の値だよ\"　’（0）が一番目\r\n    tainou(1) = \"二番目の値だよ\"　’（1）が二番目\r\n    msgbox tainou(1)　’結果『二番目の値だよ』が表示される。"]
[264,"構文","動的配列に要素追加","    Dim var() As Variant'必ず最初は要素数を決めない（）のみで宣言する。\r\n    Redim var(0)'あとから定義。\r\n    Var(0) = \"あ\"\r\n    Redim Preserve var(1) 'このpreserveを付けないとvar(0)に入れていたデータもリセットされていまうので忘れないように。\r\n    Var(1) = \"い\""]
[265,"構文","配列にセル範囲の値を格納","    Dim arr() As Variant\r\n    arr = Range(\"A1:C5\").Value 'これでセル範囲を配列として変数に代入。\r\n    MsgBox arr(4, 3) 'これで座標に該当するセルの値を表示する。"]
[266,"構文","配列の要素数（最後の要素番号）取得","Ubound(arr)’arrは仮の変数名"]
[267,"構文","文字列から配列へ","    Dim arr() Aｓ　String\r\n    arr = Split(\"A,B,C\",\",\")'『,』を基準に文字列を分けて配列にするということ。つまりAとBとCに分かれるということ。"]
[268,"構文","配列から文字列へ","Debug.Print Join(arr,\",\")『,』を間に挟んで文字列へ変換する。そしてそれをイミディエイトウィンドウに表示するコード"]
[269,"構文","簡単配列化","    Dim arr() As variant\r\n    arr = Array(\"リンゴ\",\"みかん\",\"バナナ\")\r\n　　Msgbox join(arr)\r\n"]
[270,"構文","配列の詳細を確認（ローカルウィンドウ）","    Dim var() as variant\r\n    var = Fange(\"A1:E5\").Value\r\n    stop 'これでプログラムが一時停止する　　その後　表示→ローカルウィンドウ　で配列の内容が確認できる！"]
[271,"構文","一次元配列をMsgboxで表示","    Dim arrFruits(2) As String\r\n    arrFruits(0) =\"ミカン\"\r\n    arrFruits(1) =\"リンゴ\"\r\n    arrFruits(2) =\"ナシ\"\r\n  \r\n    Msgbox Join(arrFruits)"]
[272,"構文","二次元配列をMsgboxで表示","    Dim arr() As Variant\r\n    arr = Range(\"A1:C5\").Value 'これでセル範囲を配列として変数に代入。\r\n    Dim myStr As String\r\n    Dim r As Long, c As Long\r\n    For r = LBound(arr) To UBound(arr) 'Lboundは配列の最初の要素番号、Uboundは配列の最後の要素番号\r\n        For c = 1 To 3 '今回の配列の列数は3のため\r\n            Select Case c\r\n                Case 1\r\n                    myStr = myStr & arr(r, c)\r\n                Case Else\r\n                    myStr = myStr & \",\" & arr(r, c)\r\n            End Select\r\n        Next c\r\n        myStr = myStr & vbCrLf\r\n    Next r\r\n    \r\n    MsgBox myStr\r\n\r\n"]
[273,"構文","二次元配列に列追加","    Dim var() As variant'必ず最初は要素数を決めない（）で宣言する。\r\n    Redim var(0,0)'あとから定義。\r\n    Var(0,0) = \"あ\"\r\n    Redim Preserve var(0,1) 'このPreserveを付けないとvar(0,0)に入れていたデータもリセットされていまうので忘れないようにする。\r\n    Var(0,1) = \"い\"\r\n    ’ちなみにRedim Preserve var(1,0)のように行数を増やすことはできない。これではインデックスの範囲外とエラーになる。Preserveで増やせるのは列数のみ。\r\n    'ただしTransposeワークシート関数を使った裏技あり。"]
[274,"構文","二次元配列に行を追加する","    Dim var() As Variant '必ず最初は要素数を決めない（）で宣言する。\r\n    ReDim var(0, 0) 'あとから定義。\r\n    var(0, 0) = \"あ\"\r\n    ReDim Preserve var(0, 1) '列は増やせる\r\n    var(0, 1) = \"い\"\r\n    Dim arr() As Variant\r\n    arr = Application.WorksheetFunction.Transpose(var) 'これで行と列を縦横入れ替える\r\n                                                                                 'ただし、0ではなく1が開始要素番号となり、行番号が１増加している。\r\n    ReDim Preserve arr(1 To UBound(arr), 1 To UBound(var) + 2) '列なら増やせる。\r\n    arr(1, UBound(var) + 2) = \"か\"\r\n    arr(2, UBound(var) + 2) = \"き\"\r\n    \r\n    var = Application.WorksheetFunction.Transpose(arr) '再び縦横を入れ替え元に戻す\r\n    Stop\r\n"]
[275,"構文","配列活用事例（配列でデータ加工＆転記）","　 '『マスタ』シートの情報を『貼付け先』シートへ転記するのを配列で行うマクロ\r\n   'さらに取り込んだデータを加工する（今回はデータを結合して情報を減らす。）\r\n   '例）都道府県と市区町村と番地に分かれているのをくっつけて転記する等。\r\n   'データ量が多い場合は配列使用が最速になる\r\n 　'まずは『マスタ』シートの情報を配列へ全て格納する\r\n    Dim arrUserData() As Variant\r\n    With Sheets(\"マスタ\")\r\n        arrUserData = .Range(.Cells(1, 1), .Cells(Rows.Count, 10).End(xlUp))'配列に格納\r\n    End With\r\n    \r\n    '次に二次元配列を用意する。\r\n    Dim arrToData() As String\r\n    ReDim arrToData(1 To UBound(arrUserData), 1 To 5)’Redeim　変数名(行数,列数)　で要素数を再定義\r\n    \r\n    '配列へシートの情報（arrUserData)を入れていく。さらに加工も行いながら転記してみる\r\n   \r\n    Dim i As Long\r\n    For i = 1 To UBound(arrUserData)'配列の行数分繰り返される。さらにセルを配列にした場合は開始番号は1\r\n        arrToData(i, 1) = arrUserData(i, 1) & arrUserData(i, 2) '都道府県+地区名\r\n        arrToData(i, 2) = arrUserData(i, 3) & \"　\" & arrUserData(i, 4) '番地+アパート名\r\n        arrToData(i, 3) = arrUserData(i, 6) '氏名\r\n        arrToData(i, 4) = arrUserData(i, 7) 'フリガナ\r\n        arrToData(i, 5) = DateSerial(arrUserData(i, 8), arrUserData(i, 9), arrUserData(i, 10)) '『年』『月』『日』を繋げる\r\n    Next\r\n    \r\n    '配列(arrOki)から情報をシートへ貼り付ける。\r\n    With Sheets(\"貼り付け先\")\r\n        .Range(.Cells(2, 1), .Cells(2 + UBound(arrJoho) - 1, 5)).Value = arrToData’配列の行数と列数を合わせたセル範囲へは一括で代入可能。\r\n    End With\r\n    "]
[276,"構文","変数のデータ型変換","CLng(day)'Long型へ変換\r\nCStr(day)'String型へ変換\r\nCDate(num)'Date型へ変換"]
[277,"構文","待機（数秒マクロを止める）","Private Declare Sub Sleep Lib \"kernel32\" (ByVal ms As Long)’これは32BITバージョン。これをモジュールの一番上に記述\r\n\r\nSleep 3000'3秒まつという意味（つまり1000で１秒）。このコードはプロシージャ（マクロ）内に記述"]
[278,"構文","マクロパーツ化（Function）","基本的にマクロをパーツ化するために行う。\r\nSub パーツ化()\r\n　  Dim total As Long\r\n    total =  keisan(num1,num2)'引数としてnum1とnum2をfunctionに渡しながら呼び出して、戻ってきた値をtotal変数に代入するコード\r\n    Call message(total)\r\nEnd Sub\r\n\r\nPrivate Function keisan(Byval num1As Long, Byval num2 As Long) As Long'引数受け取る変数は(Byval〇Asデータ型)とする。\r\n　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　'最後のAs Longは戻り値の型設定\r\n    keisan = num1 + num2'最後戻り値を返す場合は『Functionプロシージャ名（ここではkeisan）=戻したい値』と記述する\r\nEnd Function\r\n\r\nSub message(Byval total As  Long) '戻り値がない場合はSubプロシージャでOK。戻り値がないのでカッコの後の『As データ型』も不要\r\n    Msgbox total\r\nEnd Sub"]
[279,"構文","VBAでJIS関数（ワークシート関数）","Application.worksheetFunction.Dbcs(123456）'これで全角表示になる"]
[280,"構文","CSV読み込み","    Dim myFSO As New FileSystemObject, myTextFile As TextStream　’まずは参照設定でMicrosoft Scripting Runtimeにチェックを入れる。\r\n    Dim mySalesData As Variant, i As Integer\r\n    Set myTextFile = myFSO.OpenTextFile(\"Ｃ:\\●一時保存●※タイトル変更禁止\\データ.csv\", ForReading)\r\n    i = 3\r\n    With myTextFile\r\n        .SkipLine\r\n        Do Until .AtEndOfStream = True\r\n            mySalesData = Split(.ReadLine, \",\")\r\n            Cells(i, 1).Value = mySalesData(33)\r\n            Cells(i, 2).Value = mySalesData(34)\r\n            Cells(i, 3).Value = mySalesData(36)\r\n            i = i + 1\r\n        Loop\r\n        .Close\r\n    End With"]
[281,"構文","CSV書き込み","    Do Until i = .Cells(Rows.Count, 3).End(xlUp).Row\r\n        myStockData(0) = .Cells(i, 1).Value\r\n        myStockData(1) = .Cells(i, 2).Value\r\n        myStockData(2) = .Cells(i, 3).Value\r\n        myStockData(3) = .Cells(i, 4).Value\r\n        myStockData(4) = .Cells(i, 5).Value\r\n        myTextFile.WriteLine Text:=Join(myStockData, \",\") 'csvファイル.WriteLine Text:=〇〇で一行ずつ書き込まれる。自動で次の行へ\r\n         i = i + 1\r\n    Loop"]
[282,"構文","Emptyかどうか","    if ＩｓEmpty(hairetsu) = true then\r\n        msgbox \"Ｅｍｐｔｙです\"\r\n    endif "]
[283,"構文","千円未満切り上げ","Application.WorksheetFunction.RoundUp(1500000, -3)"]
[284,"構文","千円未満切捨て","Application.WorksheetFunction.RoundDown(15000000, -3)"]
[285,"構文","月末指定","taishoTsuki = DateSerial(2022, 10, 1)'2022年10月1日\r\n getsumatsu = DateSerial(2022,11, 0)’2022年10月31日※最後に0を指定すると前月の末日になる。"]
[286,"構文","Dictionary（連想配列）","Sub 辞書()\r\n    '国語→70、数学→90、英語→80\r\n    'を連想配列へ代入しすべてのキーと値を表示してみよう！\r\n    Dim myDic As Object\r\n    Set myDic = CreateObject(\"Scripting.Dictionary\")\r\n    With myDic\r\n        .Add \"国語\", 70\r\n        .Add \"数学\", 90\r\n        .Add \"英語\", 80\r\n'        If .Exists(\"英語\") = True Then\r\n'            .Remove \"英語\"'これで英語を削除できる\r\n'        End If\r\n'        .RemoveAll\r\n        Dim myKey As Variant\r\n        Dim subjects As String\r\n        For Each myKey In myDic\r\n            subjects = subjects & myKey & \":\" & .Item(myKey) & vbCrLf\r\n        Next myKey\r\n    End With\r\n    \r\n    MsgBox subjects\r\n    \r\nEnd Sub"]
[287,"構文","構造体","Option Explicit\r\n\r\nType User\r\n       Name As String\r\n       Age As Long\r\n End Type\r\n'引数なし、戻り値複数のパターン\r\nSub 戻り値複数パターン()\r\n       Dim user1 As User\r\n       user1 = userInfo  '引数なしの場合はFunctionマクロ名のみ記述\r\n       MsgBox user1.Name & \"(\" & user1.Age & \")\"\r\nEnd Sub\r\n\r\nPrivate Function userInfo() As User\r\n       Dim Customer As User\r\n       Customer.Name = \"田中和樹\"\r\n       Customer.Age = 25\r\n       userInfo = Customer\r\nEnd Function\r\n\r\n\r\n'引数複数､戻り値なしのパターン\r\nSub 引数複数パターン()\r\n       Dim user1 As User\r\n       user1.Name = \"田中和樹\"\r\n       user1.Age = 25\r\n       Call userInfo2(user1)\r\n       \r\nEnd Sub\r\n\r\nSub userInfo2(ByRef user1 As User) 'この時『ByRef』参照渡しとなることに注意\r\n       MsgBox user1.Name & \"(\" & user1.Age & \")\"\r\nEnd Sub\r\n\r\n"]
[288,"構文","メッセージ分岐③※はい以外はマクロ終了","    Dim choice As Integer: choice = MsgBox(prompt:=\"保存してもよろしいですか？\", Buttons:=vbYesNoCancel)\r\n    If choice <> vbYes Then\r\n        Exit Sub\r\n    End If"]
[289,"構文","複数シートを配列へ代入","Sub 複数シートを配列へ代入()\r\n    Dim fromSh As Worksheet\r\n    Dim shArr(3) As Worksheet\r\n    Set shArr(0) = Worksheets(\"シート名1\")\r\n    Set shArr(1) = Worksheets(\"シート名2\")\r\n    Set shArr(2) = Worksheets(\"シート名3\")\r\n    Set shArr(3) = Worksheets(\"シート名4\")\r\n    Dim i As Long\r\n    For i = 0 To UBound(shArr)\r\n        MsgBox shArr(i).Name\r\n    Next i\r\nEnd Sub"]
[290,"その他","クリップボードに文字列を保存","　　'クリップボードに文字列を格納\r\n    With CreateObject(\"Forms.TextBox.1\")\r\n        .MultiLine = True\r\n        .Text = \"ここに保存したい文字列を指定\"\r\n        .SelStart = 0\r\n        .SelLength = .TextLength\r\n        .Copy\r\n    End With"]
[291,"その他","UWSCコメントアウト","//基本的にはスラッシュ×2でコメントアウト\nTEXTBLOCK\nあとテキストブロックで囲まれたこの文章もコメントアウトされる。\n複数行ならこれを使う。\nENDTEXTBLOCK"]
[292,"その他","UWSCへ引数と起動","Sub 引数渡してファイル起動()\n    Dim path As String\n    path = ThisWorkbook.path & \"\\ＵＷＳＣ\\UWSC.exe\"'まずはUWSCの場所を指定\n    Dim file As String\n    file = ThisWorkbook.path & \"\\ＵＷＳＣ\\入力フォーム.UWS\"’次にUWSCのファイルを指定\n    Dim ret As Variant\n　　’次にエクセルから情報を引数配列としてUWSCに引き渡す\n    ret = Shell(path & \" \" & file & \" \" & Range(\"A3\").Value & \" \" & Range(\"A6\").Value, vbNormalFocus)\nEnd Sub\n"]
[293,"その他","ウィンドウIDを求める","GETID(\"ウィンドウ名\")//ちなみにウィンドウ名は一部でOK"]
[294,"その他","UWSC文字送信","//ウインドウIDをまずは指定する。\nId = GETID(\"ウィンドウ名\")\n//文字送信する。\nSENDSTR(Id,”送信文字\")"]
[295,"その他","UWSC文字送信（IDなし）","//ウインドウIDを指定せずに文字列を送信するには一度クリップボードへ送る必要がある。\nSENDSTR(0,”送信文字\")'IDに0をしていすることでクリップボードへ送信できる。\n//あとはペースト\nKBD(VK_CTRL,DOWN,10)\nKBD(VK_V,CLICK,10)\nKBD(VK_CTRL,UP,0)"]
[296,"その他","UWSC文字入力作業","//引き渡された配列からUWSCで入力する作業\n//まずはIDを指定。これは入力先ページのタイトルの一部をGETIDに入れるといい。\nid = GETID(\"ウィンドウ名\")\n//'これは0だが、1番目のエクセルから受け取ったデータの入力という意味。\nSENDSTR(id,PARAM_STR[0])"]
[297,"その他","UWSC引数確認","msgbox(PARAM_STR[0])"]
[298,"その他","UWSCでの改行","MsgBox (\"情報が入力されました。<#CR> \"住所等に誤りがないか確認してください。\")"]
[299,"その他","UWSCでの改行②","MsgBox (hennsuu + \"<#CR> \"+ hennsuu2)"]
[300,"その他","UWSC停止コマンド","//これを最初に書く\nsethotkey(VK_ESC,0,\"ForceStop\")\n//これを最後に書く\nprocedure ForceStop()\n    exitexit\nfend"]
[301,"その他","UWSCからUWSC実行","CALL 〇〇〇.UWS"]
[302,"その他","UWSCからUWSC実行②"," //コンマ区切りで引数を指定することも可能。受け取り側はPARAM_STR[0]とかでOK。\nCALL 〇〇〇.UWS（\"A\",\"B\")"]
[303,"その他","UWSCからVBA起動","ExcelObj=GETACTIVEOLEOBJ(\"Excel.application\")\nExcelObj.Run(\"UWSC起動\")\n"]
[304,"その他","UWSC選択外す","KBD(VK_CTRL,DOWN)\nKBD(VK_TAB)\nKBD(VK_CTRL,UP)"]
[305,"その他","UWSC画面出す","title = GETID(\"ウィンドウ名\")\n\nCTRLWIN(title,NORMAL)"]
[306,"その他","UWSC開くまで待つ","IE = CREATEOLEOBJ(\"InternetExplorer.Application\")//既に開いているページの更新ならこれ\nIE = GETACTIVEOLEOBJ(\"InternetExplorer.Application\",\"ページのタイトル\")//既に開いているページの更新ならこれ\nREPEAT\n sleep(0.1)\nUNTIL !IE.busy and IE.readystate =4 //『!』を頭につけることで否定系になる。また、IE.readystate=4はそのまま覚える。"]
[307,"その他","UWSC吹き出し","FOR N = 5 to 1 STEP-1\n \n FUKIDASI(N,500,400,0,100)　//（文字列、X、Y、くちばしの向き、フォントの大きさ）\n SLEEP(1)\nNEXT"]
[308,"その他","UWSC選択ボックス","kekka = SLCTBOX(SLCT_BTN,0,\"選択してください\",\"一番目\",\"二番目\",\"三番目\")\n\nSELECT kekka \n CASE SLCT_1\n  msgbox(\"一番が選択されました\")\n CASE SLCT_2\n  msgbox(\"二番が選択されました\")\n CASE SLCT_3\n  msgbox(\"三番が選択されました\")\nSELEND\n\n"]
[309,"その他","UWSC　IE戻る","IE.Goback"]
[310,"その他","UWSCフレームへ移動","title = \"ウィンドウ名\"\nIE = GETACTIVEOLEOBJ(\"InternetExplorer.Application\",title)\nIE.Visible = true\n//待機\nREPEAT　\n sleep(0.1)\nUNTIL !IE.busy and IE.readystate =4 //『!』を頭につけることで否定系になる。\nsleep(0.2)\n//まずは変数docにフレームを入れる。つまりフレームの中へ入る。\ndoc = IE.Document.frames(\"leftFrame\").Document\n//そのフレームの中のタグの中のIDを指定する。ちなみにIDは一つだけだからやりやすい。\nobj = doc.getElementById(\"modoru\")\n//そのIDのリンクをクリックする。\nobj.click\n//print doc.title"]
[311,"その他","UWSC繰り返し","FOR I = 1 To 10\n    　　処理\nNEXT"]
[312,"その他","UWSC繰り返し(～間）","WHILE 条件\n　　　　処理\nWEND"]
[313,"その他","UWSC繰り返し(～まで）","REPEAT\n     Sleep(0.1)　　//下記の条件を満たすまで待機\nUNTIL CHKIMG(\"画像/予告.bmp\")  //もし予告という画像がみつかったらループを抜ける"]
[314,"その他","UWSC画像あるか","IFB CHKIMG(\"フォルダ/画像名.BMP\")\n     MSGBOX(\"画像ありました\")\nENDIF"]
[315,"その他","UWSCクリップボード条件分岐","//まずは何か文字をコピー\nKBD(VK_CTRL,DOWN,10)\nKBD(VK_C,CLICK,10)\nKBD(VK_CTRL,UP,0)\n\n//次にクリップボードの値を変数COPYSTRへ代入\nCOPYSTR = GETSTR(0)\n\n\n\t\n//クリップボードの値によって処理を変える。\n//もし『文字１』という文字が含まれているなら実行。\nIFB POS(\"文字１\", COPYSTR) > 0 THEN\n\tMSGBOX(\"一つ目の処理\")\t\t\n\n//もし『文字１』という文字が含まれているなら実行。\t\t\nELSEIF POS(\"文字２\", COPYSTR) > 0 THEN\n\tMSGBOX(\"二つ目の処理\")\t\t\n\n//それ以外なら実行\t\t\nELSE \n\tMSGBOX(\"三つ目の処理\")\t\t\t\t\n\nENDIF"]
[316,"その他","キーボード入力","SendKeys \"{ENTER}\"'エンター押す動作を再現する。"]
[317,"その他","一部リンクエラー処理","『ブック内の一部リンクはすぐに更新できません。』のエラーが出た場合の処理。Escで止める。\r\nSub リンクなし処理()\r\n    Debug.Print \"処理開始\"\r\n    Dim rng As Range\r\n        On Error Resume Next\r\n        For Each rng In Cells.SpecialCells(xlCellTypeAllValidation)\r\n            With rng\r\n                If .Validation.Type = xlValidateList Then\r\n                    'データの入力規則が入っているセル（他ブック参照）をイミディエイトウィンドウに書き出す。\r\n                    Debug.Print _\r\n                    .Address(False, False) & vbTab & _\r\n                    .Validation.Formula1\r\n                    \r\n                    Columns(rng.Column).Delete '例えば、該当するセルを列ごと削除するとかしてリンクエラーのセルごと消し去る。\r\n                End If\r\n            End With\r\n        Next\r\n                    \r\n                    \r\nEnd Sub"]
[318,"その他","NumLock解除","   'numlock解除\r\n   Dim WshShell\r\n   Set WshShell = CreateObject(\"WScript.Shell\")\r\n   WshShell.SendKeys \"{NUMLOCK}\"\r\n   Set WshShell = Nothing"]
[319,"その他","数値へ変換（エクセル関数）","数式：ＶＡＬＵＥ関数について　※ＶＢＡではない\n＝ＶＡＬＵＥ（文字列）\n"]
[320,"その他","かつ（エクセル関数）","AND(B<10,B>2)"]
[321,"その他","または（エクセル関数）","OR(B=1,B=3)"]
[322,"その他","条件分岐（ユーザー定義）","[条件]表示形式\n[<=43638]m/d"]
[323,"その他","ワークシート関数を使う","Application.worksheetfunction.〇〇〇"]
[324,"その他","一時的に他プリンター選択","  'プリンターを一時的に他プリンターに設定する。\r\n    Dim myPrinterName As String\r\n    myPrinterName = Application.ActivePrinter’まずは今のプリンター名を変数に入れておく。\r\n    Application.ActivePrinter = \"NEC MultiImpact 700JE on Ne03:\"’一時的に使用したいプリンター名　※イミディエイトウィンドウで?ActivePrinterで調べられる。\r\n    Sheets(\"受入票\").PrintOut\r\n    Application.ActivePrinter = myPrinterName’元のプリンターに戻す。"]
[325,"その他","実行時間計測","    Dim startTime As Double\r\n    Dim endTime As Double\r\n    Dim processTime As Double \r\n    startTime = Timer\r\n    endTime = Timer\r\n    processTime = endTime - startTime"]
[326,"その他","画面更新を止める","    Application.ScreenUpdating=false 'これで画面の見た目更新を止める\r\n　　　　’ここに処理\r\n    Application.ScreenUpdating=true '処理終わった最後に画面更新をオン"]
[327,"その他","５分後にマクロ実行","Application.ontime EarlestTime:=Now + timeValue(\"00:05:00\"),Procedure:=\"マクロ名\",LatestTime:=何分待つか（省略可能),Schedule:=true/False'有効無効"]
[328,"その他","ワードをPDF保存","    'ワードをPDF保存\t\r\n    wddoc.ExportAsFixedFormat _\r\n    OutputFileName:=ThisWorkbook.path & \"\"\\\"\" & ”ファイル名\"\" & \"\".pdf\"\", _\r\n    ExportFormat:=wdExportFormatPDF\"\r\n"]
[329,"その他","デスクトップのパス","    Dim wsh As Variant\r\n    Set wsh = CreateObject(\"WScript.Shell\")\r\n    Path = wsh.SpecialFolders(\"Desktop\")"]
[330,"その他","Word(ワード)操作初期設定","まずはVBEの参照設定をする。やり方はツール→参照設定→『Microsoft　Word 〇〇.〇 Object Library』にチェック→OK "]
[331,"その他","Word(ワード)新規追加","Sub Word新規作成()\r\n'    '参照設定ありの場合\r\n'    Dim wdApp As New Word.Application\r\n    '参照設定なしの場合(次の２行）\r\n    Dim wdApp As Object\r\n    Set wdApp = CreateObject(\"Word.Application\")\r\n    wdApp.Visible = True 'ワードを表示させる\r\n    wdApp.Documents.Add 'ドキュメント新規追加\r\nEnd Sub"]
[332,"その他","Word(ワード)ファイル開く","Sub Wordファイル開く()\r\n'    '参照設定ありの場合\r\n'    Dim wdApp As New Word.Application\r\n    '参照設定なしの場合(次の２行）\r\n    Dim wdApp As Object\r\n    Set wdApp = CreateObject(\"Word.Application\")\r\n    wdApp.Visible = True 'ワードを表示させる\r\n    wdApp.Documents.Open \"C:\\Users\\PCのユーザー名\\OneDrive\\デスクトップ\\ファイル名.docx\"\r\nEnd Sub"]
[333,"その他","Word(ワード)読み取り専用で開く","Sub Word読み取り専用で開く()\r\n'    '参照設定ありの場合\r\n'    Dim wdApp As New Word.Application\r\n    '参照設定なしの場合(次の２行）\r\n    Dim wdApp As Object\r\n    Set wdApp = CreateObject(\"Word.Application\")\r\n    wdApp.Visible = True 'ワードを表示させる\r\n    wdApp.Documents.Open Filename:=\"C:\\Users\\PCのユーザー名\\OneDrive\\～\\ファイル名.docx\", ReadOnly:=True\r\nEnd Sub"]
[334,"その他","Word(ワード)で選択範囲を取得","Sub Word選択範囲取得()\r\n    '参照設定ありの場合\r\n    Dim wdApp As New Word.Application\r\n    '参照設定なしの場合(次の２行）\r\n'    Dim wdApp As Object\r\n'    Set wdApp = CreateObject(\"Word.Application\")\r\n    wdApp.Visible = True 'ワードを表示させる\r\n    Dim wdDoc As Object\r\n    Set wdDoc = wdApp.Documents.Open _\r\n          (Filename:=\"C:\\Users\\～\\ファイル名.docx\")\r\n    Stop '停止中にワードの任意の位置を選択してF5で再開してください。\r\n    MsgBox wdApp.Selection.Start & \"から\" & wdApp.Selection.End & \"まで選択されています。\"\r\nEnd Sub"]
[335,"その他","Word(ワード)選択範囲に文字入力","Sub Word選択位置に文字挿入()\r\n    '参照設定ありの場合\r\n    Dim wdApp As New Word.Application\r\n    '参照設定なしの場合(次の２行）\r\n'    Dim wdApp As Object\r\n'    Set wdApp = CreateObject(\"Word.Application\")\r\n    wdApp.Visible = True 'ワードを表示させる\r\n    Dim wdDoc As Object\r\n    Set wdDoc = wdApp.Documents.Open _\r\n          (Filename:=\"C:\\Users\\～\\ファイル名.docx\")\r\n    Stop '停止中にワードの任意の位置を選択してF5で再開してください。\r\n    wdApp.Selection.TypeText \"<ここに入力しました>\" & vbCr  '文字入力ついでに改行もしています。\r\nEnd Sub"]
[336,"その他","Word(ワード)選択文字の前にインサート","Sub Word選択位置の前に文字挿入()\r\n    '参照設定ありの場合\r\n    Dim wdApp As New Word.Application\r\n    '参照設定なしの場合(次の２行）\r\n'    Dim wdApp As Object\r\n'    Set wdApp = CreateObject(\"Word.Application\")\r\n    wdApp.Visible = True 'ワードを表示させる\r\n    Dim wdDoc As Object\r\n    Set wdDoc = wdApp.Documents.Open _\r\n          (Filename:=\"C:\\Users\\～\\ファイルパス.docx\")\r\n    Stop '停止中にワードの任意の位置を選択してF5で再開してください。\r\n    wdApp.Selection.InsertBefore \"<ここに挿入しました>\"   '選択範囲の前にインサート。\r\nEnd Sub"]
[337,"その他","Word(ワード)選択範囲の後に文字挿入","Sub Word選択位置の後に文字挿入()\r\n    '参照設定ありの場合\r\n    Dim wdApp As New Word.Application\r\n    '参照設定なしの場合(次の２行）\r\n'    Dim wdApp As Object\r\n'    Set wdApp = CreateObject(\"Word.Application\")\r\n    wdApp.Visible = True 'ワードを表示させる\r\n    Dim wdDoc As Object\r\n    Set wdDoc = wdApp.Documents.Open _\r\n          (Filename:=\"C:\\Users\\～\\ファイル名.docx\")\r\n    Stop '停止中にワードの任意の位置を選択してF5で再開してください。\r\n    wdApp.Selection.InsertAfter \"<ここに挿入しました>\"   '選択範囲の後にインサート。\r\nEnd Sub"]
[338,"その他","word(ワード)で文字検索と置換","Sub Word文字検索と置換()\r\n    '参照設定ありの場合\r\n    Dim wdApp As New Word.Application\r\n    '参照設定なしの場合(次の２行）\r\n'    Dim wdApp As Object\r\n'    Set wdApp = CreateObject(\"Word.Application\")\r\n    wdApp.Visible = True 'ワードを表示させる\r\n    Dim wdDoc As Object\r\n    Set wdDoc = wdApp.Documents.Open _\r\n          (Filename:=\"C:\\Users\\～\\ファイル名.docx\")\r\n  \r\n    'ここから文字検索\r\n    With wdApp.Selection\r\n        Do\r\n            .Find.Text = \"検索する文字\"\r\n            If .Find.Execute = True Then 'この一行で検索され、さらに見つかった場合はTrueを返す\r\n                .TypeText \"入れ替え後の文字\" '見つかった場合は選択文字を入れ替える\r\n            End If\r\n        Loop Until .Find.Execute = False '見つからなくなるまで実行\r\n    End With\r\nEnd Sub"]
[339,"その他","Word(ワード)をPDF保存","    wdDoc.ExportAsFixedFormat _\r\n        OutputFileName:=ThisWorkbook.path & \"\\\" & ”ファイル名\" & \".pdf\", _\r\n        ExportFormat:=wdExportFormatPDF"]
[340,"その他","Word(ワード)へExcel表から転記","Option Explicit\r\n'まずは構造体を作成\r\nType user\r\n    company As String\r\n    myDate As Date\r\n    userName As String\r\n    userNo As String\r\n    tantou As String\r\nEnd Type\r\nSub Word文字検索()\r\n    '参照設定ありの場合\r\n    Dim wdApp As New Word.Application\r\n    '参照設定なしの場合(次の２行）\r\n'    Dim wdApp As Object\r\n'    Set wdApp = CreateObject(\"Word.Application\")\r\n    wdApp.Visible = True 'ワードを表示させる\r\n    Dim docPath As String: docPath = \"C:\\Users\\～\\ファイル名.docx\"\r\n    \r\n    'Excel表の最終行を取得。イメージとしては文書日付、会社名、代表者名、受付番号、担当者の情報が10行分ある表\r\n    Dim lastRow As Long: lastRow = Worksheets(\"顧客一覧\").Cells(Rows.Count, 1).End(xlUp).Row\r\n    '行数分繰り返し\r\n    With Worksheets(\"顧客一覧\")\r\n        Dim userJoho As user\r\n        Dim i As Long\r\n        For i = 2 To lastRow\r\n            Dim wdDoc As Object\r\n            Set wdDoc = wdApp.Documents.Open(Filename:=docPath, ReadOnly:=True)\r\n            userJoho.myDate = .Cells(i, 2).Value\r\n            userJoho.company = .Cells(i, 3).Value\r\n            userJoho.userName = .Cells(i, 4).Value\r\n            userJoho.userNo = .Cells(i, 5).Value\r\n            userJoho.tantou = .Cells(i, 6).Value\r\n            Call ワードへ転記(userJoho, wdApp, wdDoc)\r\n            wdDoc.Close savechanges:=False\r\n            Set wdDoc = Nothing\r\n        Next i\r\n    End With\r\nEnd Sub\r\n\r\nFunction ワードへ転記(ByRef userJoho As user, ByVal wdApp As Object, ByVal wdDoc As Object)\r\n    With wdApp.Selection\r\n         .Find.Text = \"[日付]\"\r\n        If .Find.Execute = True Then .TypeText Application.WorksheetFunction.Dbcs(Format(userJoho.myDate, \"ggge年m月d日\"))\r\n        .Find.Text = \"[会社名]\"\r\n        If .Find.Execute = True Then .TypeText userJoho.company\r\n        .Find.Text = \"[代表者]\"\r\n        If .Find.Execute = True Then .TypeText userJoho.userName\r\n        .Find.Text = \"[受付番号]\"\r\n        If .Find.Execute = True Then .TypeText userJoho.userNo\r\n        .Find.Text = \"[担当者]\"\r\n        If .Find.Execute = True Then .TypeText userJoho.tantou\r\n    End With\r\n    wdDoc.ExportAsFixedFormat _\r\n    OutputFileName:=ThisWorkbook.Path & \"\\\" & userJoho.company & \"(\" & userJoho.userNo & \").pdf\", _\r\n    ExportFormat:=wdExportFormatPDF\r\nEnd Function\r\n"]
[341,"その他","パワポ埋め込みシートから転記作業","  Dim s As Variant\r\n    For Each s In ActiveWindow.Selection.SlideRange.Shapes\r\n        If s.Type = msoEmbeddedOLEObject Then\r\n            Dim umekomiWb As Object\r\n            Set umekomiWb = s.OLEFormat.Object '埋め込みシート\r\n            Dim xlApp As Object\r\n            Set xlApp = CreateObject(\"Excel.Application\") ' Excelオブジェクト\r\n            xlApp.Visible = True\r\n            Dim fileName As String\r\n            fileName = Dir(ActivePresentation.Path & \"\\*開くExcelファイル名*.xlsx\")\r\n            Dim wb As Object\r\n            Set wb = xlApp.workbooks.Open(ActivePresentation.Path & \"\\\" & fileName)\r\n            With wb.Worksheets(\"貼付け先シート名\")\r\n                 Dim lastRow As Long\r\n                 lastRow = .cells(Rows.Count,1).End(xlUp).Row\r\n                 umekobiWb.Sheets(1).Range(\"A1:E1\").Copy .cells(lastRow,1)\r\n            End With\r\n        End If\r\n    Next"]
[342,"その他","他アプリからExcelを開く","    Set xlApp = CreateObject(\"Excel.Application\") ' Excelオブジェクト\r\n    xlApp.Visible = True\r\n    Dim fileName As String\r\n    fileName = Dir(ActivePresentation.Path & \"\\*開くExcelファイル名*.xls\")\r\n    Dim wb As Object\r\n    Set wb = xlApp.workbooks.Open(ActivePresentation.Path & \"\\\" & fileName)"]
[343,"その他","スライサーのキャプション変更","Sub スライサーのキャプション変更()\r\n    ActiveWorkbook.SlicerCaches(1).Slicers(1).Caption = \"評価ランク\"\r\nEnd Sub"]
[344,"その他","スライサーで選択されている項目の数","〇〇にはスライサーのタイトルを入れる。\r\nActiveWorkbook.SlicerCaches(\"スライサー_〇〇\").VisibleSlicerItems.Count"]
[345,"その他","スライサーの項目数","ActiveWorkbook.SlicerCaches(\"スライサー_部署\").SlicerItems.Count"]
[346,"その他","スライサーで選択されている項目を取得する","Sub スライサーの選択項目を取得()\r\n    Dim sitem As SlicerItem\r\n    With ThisWorkbook.SlicerCaches(\"スライサー_部署\")\r\n        If .SlicerItems.Count = .VisibleSlicerItems.Count Then 'もしスライサーで何も選択されていないなら\r\n            Exit Sub\r\n        End If\r\n        For Each sitem In .SlicerItems\r\n            If sitem.Selected = True Then\r\n                MsgBox sitem.Name\r\n            End If\r\n        Next\r\n    End With\r\nEnd Sub\r\n\r\n"]

{"sheet":"カテゴリー名","index":5,"n_rows":11,"n_cols":1,"rows_kept":11,"cut":false,"hidden":true,"merged":[]}
["カテゴリー"]
["セル操作"]
["シート操作"]
["ブック操作"]
["ファイル・フォルダ操作"]
["Outlook操作"]
["ユーザーフォーム操作"]
["ブラウザ操作"]
["図形・グラフ操作"]
["構文"]
["その他"]

{"sheet":"ファイル名一覧","index":6,"n_rows":5,"n_cols":4,"rows_kept":5,"cut":false,"hidden":true,"merged":[]}
["ファイル名","変更後のファイル名","拡張子","選択されたフォルダのパス"]
["新規 Microsoft Excel ワークシート - コピー (2)","受付表1","xlsx","C:\\Users\\taaam\\OneDrive - 合同会社　L.O.A vacation\\ビジネス\\60_メンタエクセル講座発売\\セミマスタープラン講座\\プレゼント\\シートコピー実験用"]
["新規 Microsoft Excel ワークシート - コピー (3)","受付表2","xlsx"]
["新規 Microsoft Excel ワークシート - コピー","受付表3","xlsx"]
["新規 Microsoft Excel ワークシート","受付表4","xlsx"]

{"sheet":"シート名一覧","index":7,"n_rows":3,"n_cols":1,"rows_kept":3,"cut":false,"hidden":true,"merged":[]}
["シート名一覧"]
["売上データ"]
["顧客マスタ"]

{"sheet":"QRコード用URL","index":8,"n_rows":12,"n_cols":2,"rows_kept":12,"cut":false,"hidden":true,"merged":[]}
["サイト名","URL"]
["Yahoo知恵袋","https://chiebukuro.yahoo.co.jp/"]
["Amazon","https://www.amazon.co.jp/"]
["Google","https://www.google.com/"]
["YouTube","https://www.youtube.com/"]
["Twitter","https://twitter.com/"]
["Facebook","https://www.facebook.com/"]
["Instagram","https://www.instagram.com/"]
["Wikipedia","https://ja.wikipedia.org/wiki/Wikipedia"]
["LinkedIn","https://www.linkedin.com/"]
["Dropbox","https://www.dropbox.com/"]
["aaaaaああ","ああああああああああああああああああああああああああああああ"]