条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で複数の別ファイルとして連続的に作成する。

この講座は有料講座です。
講座の購入後ご覧になれます。

ログインアカウントの新規作成

解説

演習問題テーマ:条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で複数の別ファイルとして連続的に作成する。

条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で複数の別ファイルとして連続的に作成します。複数の抽出条件それぞれについて別ファイルを作成しなくてはならない場合がありますので、そのための解説です。

共有メモ

名前重要度メモ
横山 知明-すばらしいです。
請求書を発行するときなど、実践で使えそうです。
やっと、ここまでたどり着きました。

この教材についての過去の質問・感想

11987 : 小川慶一の回答 (2020-04-28 10:07:10)

受講生 さん:

> 「¥」と「/」とは同じですね。

この一文だけ取り出して「この命題は真か偽か?」ということでしたら、回答は「偽」です。

半角の「¥」マークは、ウェブ上ではバックスラッシュ「\」

> しかし「\」を入力すると「not found」になります。

どこに入力したのか?を明記ください(目的語)。

文脈からウェブページURLの「/」を半角の「¥」マークに置き換えた結果かと思いますが...すると、

> VBAでフルパスでファイルを指定するような場合、「\」は使えないという理解でよろしいでしょうか。

の部分が、話の流れとしておかしいです。

文脈からウェブページURLの「/」を半角の「¥」マークに置き換えた結果、「not found」になった。

故に、VBAでフルパスでファイルを指定するような場合、「\」は使えないという理解した

ではおかしいですね。

さらに丁寧に考察し、調査、実験してみてください。

※こういう「目的語を逃さないで可読性高い表現をする」とか「論理の流れに破綻がないか慎重に検討する」といった表現や思考の訓練が、そのまま、マクロを書くときのパラメータ不足や条件式の判定漏れとかでのバグを撲滅するための訓練になります。


11986 : 受講生さんのコメント (2020-04-28 09:42:54)

小川慶一さん:
「¥」と「/」とは同じですね。
しかし「\」を入力すると「not found」になります。VBAでフルパスでファイルを指定するような場合、「\」は使えないという理解でよろしいでしょうか。
> 受講生 さん:
>
> >違います。
> >まずは、どのような違いがあるか、調べてみてください!
>
> ネットで調べてもよいし、試してみてもよいです。
>
> たとえば、ウェブページの URL の 「/」について、その一部または全体を「\」に変えて、ブラウザーで所望のページを表示できるか?とか。


11985 : 小川慶一の回答 (2020-04-28 09:04:38)

受講生 さん:

>違います。
>まずは、どのような違いがあるか、調べてみてください!

ネットで調べてもよいし、試してみてもよいです。

たとえば、ウェブページの URL の 「/」について、その一部または全体を「\」に変えて、ブラウザーで所望のページを表示できるか?とか。


11984 : 小川慶一の回答 (2020-04-28 09:01:56)

受講生 さん:

>先ほど質問した件はわかりました。

とのことでしたので、自己解決されたのかと思っていました。

> > なお、パスの「¥」と「/」と「\」との違いはありますか。すべて同じ意味でしょうか。

違います。
まずは、どのような違いがあるか、調べてみてください!



> 受講生 さん:
> 下記の質問についてまだご回答をいただいておりませんが、いかがでしょうか。
>
> > 小川慶一さん:
> > おはようございます。
> > ローカルのフォルダでやるとエラーがでることなく作成できました。ありがとうございました。
> > なお、パスの「¥」と「/」と「\」との違いはありますか。すべて同じ意味でしょうか。
> >
> > > 受講生 さん:
> > >
> > > おはようございます。
> > > 以下のとおりにコメントします。
> > >
> > >

Option Explicit
> > > Sub copy()
> > > '[1]↑モジュール、プロシージャ名、変数名等には、Excel VBAで出てくるキーワードとかぶるものは避けましょう
> > > '   バグの温床になります。
> > > '
> > > '[2] まずは、ローカルのフォルダに保存することに成功してください。
> > > '    保存先も、最初は、こんな深いディレクトリではなく、もっと浅いもので。フォルダ名も、シンプルにで短いもので。
> > > '   https://d.docs.live.net/... への直接のアップロード&保存はできるのか?
> > > '   僕もやったことはないので定かではありません。
> > > '
> > > ' copy Macro
> > > '
> > > 
> > > '
> > >         Sheets("明細").Select
> > >         Sheets("明細").copy
> > >         ActiveWorkbook.SaveAs Filename:= _
> > >             "https://d.docs.live.net/[[hash]]/ドキュメント/仕事/VBA_セミナー/基礎/ksfollow_advanced/【動画12】%20条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で複数の別ファイルとして連続的に作成する。/200426_c.xlsx" _
> > >             , FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
> > >         ActiveWorkbook.Close
> > >     
> > > End Sub
> > > 
> > > Sub rensyu()
> > >         Dim flname
> > >         Sheets("明細").Select
> > >         Sheets("明細").copy
> > >         flname = "200426_c.xlsx"
> > > 
> > >         ActiveWorkbook.SaveAs Filename:= _
> > >             "https://d.docs.live.net/[[hash]]/ドキュメント/仕事/VBA_セミナー/基礎/ksfollow_advanced/【動画12】%20条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で複数の別ファイルとして連続的に作成する。\" & flname _
> > >             , FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
> > >            
> > >         ActiveWorkbook.Close
> > > 
> > > End Sub

> > >
> > > > ファイルの保存を自動マクロで記録して実行すれば、ファイル保存できました。
> > > > ファイル名だけ、変数にしてファイル保存しようとするとエラーがでました。色々試しましたが、うまくいきません。お手数ですが、教えてください。今まで順調に学習できていましたが、今回はギブアップです。
> > > >


11983 : 受講生さんのコメント (2020-04-28 08:59:44)

受講生 さん:
下記の質問についてまだご回答をいただいておりませんが、いかがでしょうか。

> 小川慶一さん:
> おはようございます。
> ローカルのフォルダでやるとエラーがでることなく作成できました。ありがとうございました。
> なお、パスの「¥」と「/」と「\」との違いはありますか。すべて同じ意味でしょうか。
>
> > 受講生 さん:
> >
> > おはようございます。
> > 以下のとおりにコメントします。
> >
> >

Option Explicit
> > Sub copy()
> > '[1]↑モジュール、プロシージャ名、変数名等には、Excel VBAで出てくるキーワードとかぶるものは避けましょう
> > '   バグの温床になります。
> > '
> > '[2] まずは、ローカルのフォルダに保存することに成功してください。
> > '    保存先も、最初は、こんな深いディレクトリではなく、もっと浅いもので。フォルダ名も、シンプルにで短いもので。
> > '   https://d.docs.live.net/... への直接のアップロード&保存はできるのか?
> > '   僕もやったことはないので定かではありません。
> > '
> > ' copy Macro
> > '
> > 
> > '
> >         Sheets("明細").Select
> >         Sheets("明細").copy
> >         ActiveWorkbook.SaveAs Filename:= _
> >             "https://d.docs.live.net/[[hash]]/ドキュメント/仕事/VBA_セミナー/基礎/ksfollow_advanced/【動画12】%20条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で複数の別ファイルとして連続的に作成する。/200426_c.xlsx" _
> >             , FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
> >         ActiveWorkbook.Close
> >     
> > End Sub
> > 
> > Sub rensyu()
> >         Dim flname
> >         Sheets("明細").Select
> >         Sheets("明細").copy
> >         flname = "200426_c.xlsx"
> > 
> >         ActiveWorkbook.SaveAs Filename:= _
> >             "https://d.docs.live.net/[[hash]]/ドキュメント/仕事/VBA_セミナー/基礎/ksfollow_advanced/【動画12】%20条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で複数の別ファイルとして連続的に作成する。\" & flname _
> >             , FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
> >            
> >         ActiveWorkbook.Close
> > 
> > End Sub

> >
> > > ファイルの保存を自動マクロで記録して実行すれば、ファイル保存できました。
> > > ファイル名だけ、変数にしてファイル保存しようとするとエラーがでました。色々試しましたが、うまくいきません。お手数ですが、教えてください。今まで順調に学習できていましたが、今回はギブアップです。
> > >


11964 : 受講生さんのコメント (2020-04-27 06:39:59)

小川慶一さん:
おはようございます。
ローカルのフォルダでやるとエラーがでることなく作成できました。ありがとうございました。
なお、パスの「¥」と「/」と「\」との違いはありますか。すべて同じ意味でしょうか。

> 受講生 さん:
>
> おはようございます。
> 以下のとおりにコメントします。
>
>

Option Explicit
> Sub copy()
> '[1]↑モジュール、プロシージャ名、変数名等には、Excel VBAで出てくるキーワードとかぶるものは避けましょう
> '   バグの温床になります。
> '
> '[2] まずは、ローカルのフォルダに保存することに成功してください。
> '    保存先も、最初は、こんな深いディレクトリではなく、もっと浅いもので。フォルダ名も、シンプルにで短いもので。
> '   https://d.docs.live.net/... への直接のアップロード&保存はできるのか?
> '   僕もやったことはないので定かではありません。
> '
> ' copy Macro
> '
> 
> '
>         Sheets("明細").Select
>         Sheets("明細").copy
>         ActiveWorkbook.SaveAs Filename:= _
>             "https://d.docs.live.net/[[hash]]/ドキュメント/仕事/VBA_セミナー/基礎/ksfollow_advanced/【動画12】%20条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で複数の別ファイルとして連続的に作成する。/200426_c.xlsx" _
>             , FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
>         ActiveWorkbook.Close
>     
> End Sub
> 
> Sub rensyu()
>         Dim flname
>         Sheets("明細").Select
>         Sheets("明細").copy
>         flname = "200426_c.xlsx"
> 
>         ActiveWorkbook.SaveAs Filename:= _
>             "https://d.docs.live.net/[[hash]]/ドキュメント/仕事/VBA_セミナー/基礎/ksfollow_advanced/【動画12】%20条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で複数の別ファイルとして連続的に作成する。\" & flname _
>             , FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
>            
>         ActiveWorkbook.Close
> 
> End Sub

>
> > ファイルの保存を自動マクロで記録して実行すれば、ファイル保存できました。
> > ファイル名だけ、変数にしてファイル保存しようとするとエラーがでました。色々試しましたが、うまくいきません。お手数ですが、教えてください。今まで順調に学習できていましたが、今回はギブアップです。
> >


11963 : 小川慶一の回答 (2020-04-27 05:59:26)

受講生 さん:

おはようございます。
以下のとおりにコメントします。

Option Explicit
Sub copy()
'[1]↑モジュール、プロシージャ名、変数名等には、Excel VBAで出てくるキーワードとかぶるものは避けましょう
'   バグの温床になります。
'
'[2] まずは、ローカルのフォルダに保存することに成功してください。
'    保存先も、最初は、こんな深いディレクトリではなく、もっと浅いもので。フォルダ名も、シンプルにで短いもので。
'   https://d.docs.live.net/... への直接のアップロード&保存はできるのか?
'   僕もやったことはないので定かではありません。
'
' copy Macro
'

'
        Sheets("明細").Select
        Sheets("明細").copy
        ActiveWorkbook.SaveAs Filename:= _
            "https://d.docs.live.net/[[hash]]/ドキュメント/仕事/VBA_セミナー/基礎/ksfollow_advanced/【動画12】%20条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で複数の別ファイルとして連続的に作成する。/200426_c.xlsx" _
            , FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
        ActiveWorkbook.Close
    
End Sub

Sub rensyu()
        Dim flname
        Sheets("明細").Select
        Sheets("明細").copy
        flname = "200426_c.xlsx"

        ActiveWorkbook.SaveAs Filename:= _
            "https://d.docs.live.net/[[hash]]/ドキュメント/仕事/VBA_セミナー/基礎/ksfollow_advanced/【動画12】%20条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で複数の別ファイルとして連続的に作成する。\" & flname _
            , FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
           
        ActiveWorkbook.Close

End Sub


> ファイルの保存を自動マクロで記録して実行すれば、ファイル保存できました。
> ファイル名だけ、変数にしてファイル保存しようとするとエラーがでました。色々試しましたが、うまくいきません。お手数ですが、教えてください。今まで順調に学習できていましたが、今回はギブアップです。
>


11959 : 受講生さんのコメント (2020-04-26 22:35:48)

ファイルの保存を自動マクロで記録して実行すれば、ファイル保存できました。
ファイル名だけ、変数にしてファイル保存しようとするとエラーがでました。色々試しましたが、うまくいきません。お手数ですが、教えてください。今まで順調に学習できていましたが、今回はギブアップです。


10043 : 小川慶一の回答 (2018-05-24 12:35:30)

わかやまさん:

慣れないうちは、「1文字違う」というだけで動かないプログラムの性質に悩まされますね。
とはいえ、慣れてくるとパターンも見えてきて、自力で問題解決できることも増えてくるかと思います。


> 小川様
>
> お返事ありがとうございます。無事に実行できました。
> やはり自分では気が付かないことがあるのですね。
> 結構時間を費やしてしまいましたが、プログラム書くときは
> このようなことをひとつずつ学んでいく必要があるのだと感じました。
> 今後ともよろしくお願いいたします。


10040 : わかやまさんのコメント (2018-05-24 06:08:09)

小川様

お返事ありがとうございます。無事に実行できました。
やはり自分では気が付かないことがあるのですね。
結構時間を費やしてしまいましたが、プログラム書くときは
このようなことをひとつずつ学んでいく必要があるのだと感じました。
今後ともよろしくお願いいたします。


10037 : 小川慶一の回答 (2018-05-23 09:39:22)

わかやまさん:

ActiveWorkbook.SaveAs Filename:="C:\Users\morita\Desktop\ "

のファイルパスを指定している部分、すなわち、

"C:\Users\morita\Desktop\ "

というところで、最後によけいな半角スペースが入っていますね。

なので

"C:\Users\morita\Desktop\"

というフォルダに

" n.xls" '←「半角スペース、エヌ」という、長さ二文字のファイル名のファイルを生成しています。

たぶんこれが問題ではないかと。
いかがでしょう。


10034 : わかやまさんのコメント (2018-05-22 21:31:02)

小川様

workbooksでファイルを指定しているのですが、インデックスが有効範囲にありません というエラーが解消できません。

以下、マクロ内容です。


Sub kotae2()
Dim fairu
Dim sakujyo
fairu = "n.xls"
Sheets("本番").Select
Sheets("本番").Copy
ChDir "C:\Users\morita\Desktop"
ActiveWorkbook.SaveAs Filename:="C:\Users\morita\Desktop\ " & fairu, _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Workbooks("n.xls").Worksheets("本番").Range("E4").Value = "ぬいぐるみ"

End Sub


Workbooks("n.xls").Worksheets("本番").Range("E4").Value = "ぬいぐるみ"
の部分で止まってしまいます。
このとき、おおもとのks207のファイルも開いております。

どうぞよろしくお願いします。


9110 : 小川慶一の回答 (2017-11-05 19:23:51)

横山 知明さん:

基礎編レベルのスキルだけでやっているので、かなり力業ですが。。。
ガシガシ、活用してください!

> すばらしいです。
> 請求書を発行するときなど、実践で使えそうです。
> やっと、ここまでたどり着きました。


9105 : 横山 知明さんのコメント (2017-11-04 09:32:08)

すばらしいです。
請求書を発行するときなど、実践で使えそうです。
やっと、ここまでたどり着きました。


3日がかりのその仕事、3分で終わらせる方法教えます。ガラパゴスタディーオンライン講座 ユーザー登録

本講座の動画一覧

  1. 【動画1】 住所情報を都道府県から市区町村レベルで細かく分割する
    【動画1】 住所情報を都道府県から市区町村レベルで細かく分割する 未習得
  2. 【動画2】 保険料額表から標準報酬額ごとの保険料負担額を算出する
    【動画2】 保険料額表から標準報酬額ごとの保険料負担額を算出する 未習得
  3. 【動画3】 セル内の文字列から区切り文字を見つけ、その出現回数+1回だけデータ転記する
    【動画3】 セル内の文字列から区切り文字を見つけ、その出現回数+1回だけデータ転記する 未習得
  4. 【動画4】 セル内の文字列から区切り文字を見つけ、その区切り文字の間にある文字列を切り出す
    【動画4】 セル内の文字列から区切り文字を見つけ、その区切り文字の間にある文字列を切り出す 未習得
  5. 【動画5】 セル内の文字列から区切り文字を見つけ、その区切り文字の間にある文字列を反映しつつデータ転記する
    【動画5】 セル内の文字列から区切り文字を見つけ、その区切り文字の間にある文字列を反映しつつデータ転記する 未習得
  6. 【動画6】 VLookUp関数、Index関数、Match関数より便利なマクロ-該当する行が見つからない場合の処理をアレンジ
    【動画6】 VLookUp関数、Index関数、Match関数より便利なマクロ-該当する行が見つからない場合の処理をアレンジ 未習得
  7. 【動画7】 VLookUp関数、Index関数、Match関数より便利なマクロ-複数シート間、複数ファイル間でのマッチング
    【動画7】 VLookUp関数、Index関数、Match関数より便利なマクロ-複数シート間、複数ファイル間でのマッチング 未習得
  8. 【動画8】 転記先シートを生成してデータを流し込む。
    【動画8】 転記先シートを生成してデータを流し込む。 未習得
  9. 【動画9】 転記先ファイルを生成してデータを流し込む。
    【動画9】 転記先ファイルを生成してデータを流し込む。 未習得
  10. 【動画10】 条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で作成する。
    【動画10】 条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で作成する。 未習得
  11. 【動画11】 条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で同一ファイル内に連続的に作成する。
    【動画11】 条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で同一ファイル内に連続的に作成する。 未習得
  12. 【動画12】 条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で複数の別ファイルとして連続的に作成する。
    【動画12】 条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で複数の別ファイルとして連続的に作成する。 未習得
  13. 【動画13】 ファイル配布→配布先でのデータ記入→記入済データを手元資料に統合
    【動画13】 ファイル配布→配布先でのデータ記入→記入済データを手元資料に統合 未習得
  14. 【動画14】 データ記入用ファイルを配布する-その1
    【動画14】 データ記入用ファイルを配布する-その1 未習得
  15. 【動画15】 データ記入用ファイルを配布する-その2
    【動画15】 データ記入用ファイルを配布する-その2 未習得
  16. 【動画16】 各部署からファイルを回収し、記入済データを手元資料に統合その1
    【動画16】 各部署からファイルを回収し、記入済データを手元資料に統合その1 未習得
  17. 【動画17】 各部署からファイルを回収し、記入済データを手元資料に統合その2
    【動画17】 各部署からファイルを回収し、記入済データを手元資料に統合その2 未習得
  18. 【動画18】 商品ごと、年ごとの販売額合計をピボットテーブルのように出力する(その1)
    【動画18】 商品ごと、年ごとの販売額合計をピボットテーブルのように出力する(その1) 未習得
  19. 【動画19】 商品ごと、年ごとの販売額合計をピボットテーブルのように出力する(その2-1)
    【動画19】 商品ごと、年ごとの販売額合計をピボットテーブルのように出力する(その2-1) 未習得
  20. 【動画20】 商品ごと、年ごとの販売額合計をピボットテーブルのように出力する(その2-2)
    【動画20】 商品ごと、年ごとの販売額合計をピボットテーブルのように出力する(その2-2) 未習得

塾長 小川慶一

メニュー

コメント紹介

もっと見る

ページの先頭へ