データ記入用ファイルを配布する-その1

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

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

解説

演習問題テーマ:データ記入用ファイルを配布する-その1

データ記入用ファイルを複数部署に配布します。ひとつひとつのファイルにはシートが複数含まれています。それぞれに対して、宛先部署向けの情報以外は削除した状態にしてから配布します。

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

11735 : 小川慶一の回答 (2020-01-09 09:54:51)

受講生 さん:

よかったですね。
変数が含まれているコードの行でエラーが出てしまったときは、その行に含まれている各変数の値を調べることが大切です。

今回の経験が以降につながると良いですね。
また、いつでも質問・相談お送りください。



> 小川先生、
> ご回答ありがとうございました。ご指摘の通りでした。foldernameでは、ad映像14ではなく、動画の中と同じファルダ名を指定していたため指定フォルダが見つからず動きませんでした。教えていただだくと、”なんで自分で気づけなかったのか、よく見れば確かにそうだ。”なのですが、原因を探すのに随分時間を使ったのですが、見つけられませんでした。


11733 : 受講生さんのコメント (2020-01-09 09:09:25)

小川先生、
ご回答ありがとうございました。ご指摘の通りでした。foldernameでは、ad映像14ではなく、動画の中と同じファルダ名を指定していたため指定フォルダが見つからず動きませんでした。教えていただだくと、”なんで自分で気づけなかったのか、よく見れば確かにそうだ。”なのですが、原因を探すのに随分時間を使ったのですが、見つけられませんでした。


11731 : 小川慶一の回答 (2020-01-08 11:11:12)

受講生 さん:

> そこでフォルダ名を指定したコードは何故動かないのか、教えていただけないでしょうか。よろしくお願いいたします。

おそらく、変数「foldername」に、「ad映像14」ではない値が入っているのでは?と思います。

変数「foldername」に入っている値をチェックしてください。
講座本編でお伝えした自動データヒント機能を使って調べられることと思います。



> お世話になります。今年もよろしくお願いします。今回の動画の中のフォルダを設定する事について質問させてください。
> フォルダの設定と、指定したファイル名での保存について、自動記録のコードを下記(フォルダ名を指定したが動かないコード)のように変更したのですが、実行時エラー1004が表示されます。
>
> 試しに保存先のファルダの設定を削って、保存するファイル名だけを指定したところ、うまく動きました(下記、指定フォルダを削除して、ファイル名だけ指定して動いたコード)。
>
> そこでフォルダ名を指定したコードは何故動かないのか、教えていただけないでしょうか。よろしくお願いいたします。
>
> ↓フォルダ名を指定したが動かないコード
> ActiveWorkbook.SaveAs filename:= _
> "C:\Users\PCUser\Documents\ガラパゴス\" & foldername & "\" & filename, FileFormat:= _
> xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
>
> ↓指定フォルダを削除して、ファイル名だけ指定して動いたコード
> ActiveWorkbook.SaveAs filename:=
> "C:\Users\PCUser\Documents\ガラパゴス\ad映像14\" & filename, FileFormat:= _
> xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False


11729 : 受講生さんのコメント (2020-01-08 06:05:14)

お世話になります。今年もよろしくお願いします。今回の動画の中のフォルダを設定する事について質問させてください。
フォルダの設定と、指定したファイル名での保存について、自動記録のコードを下記(フォルダ名を指定したが動かないコード)のように変更したのですが、実行時エラー1004が表示されます。

試しに保存先のファルダの設定を削って、保存するファイル名だけを指定したところ、うまく動きました(下記、指定フォルダを削除して、ファイル名だけ指定して動いたコード)。

そこでフォルダ名を指定したコードは何故動かないのか、教えていただけないでしょうか。よろしくお願いいたします。

↓フォルダ名を指定したが動かないコード
ActiveWorkbook.SaveAs filename:= _
"C:\Users\PCUser\Documents\ガラパゴス\" & foldername & "\" & filename, FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

↓指定フォルダを削除して、ファイル名だけ指定して動いたコード
ActiveWorkbook.SaveAs filename:=
"C:\Users\PCUser\Documents\ガラパゴス\ad映像14\" & filename, FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False


9836 : 小川慶一の回答 (2018-04-24 08:38:19)

ひろしさん:

おはようございます。

> 実は以前から、Excel上に印鑑を押すフリーソフト(Excel電子印鑑)を、アドインインストールして使用していましたが、そのソフトをアンインストールしたら再現しなくなりました。

なんと、そうでしたか。

ご報告ありがとうございます。
僕にとっても参考になります。

> なぜ、あの箇所でエラーが発生したかは解りませんが...

これは、僕にも分りませんね。
とはいえ、余計なプログラムが走ってることで(あるいは走る準備をしてることで)、別のプログラムの動作がおかしくなるということは、Excelマクロに限らず、一般的に起こり得ることです。

> 今回の事象は、今後勉強を進めていく上でも役に立ったと思います。

まさにそうですね。

プログラミングの能力として、エラーが起きたときの問題の切り分けを自分できるかどうかというのはとても重要な要素です。
ひろしさんにとって、今回の件は、その能力を根本的なところから高めるための良い機会なったのでは?と思います。

ひきつづき、勉強をお楽しみください。よい学びを☆


9835 : ひろしさんのコメント (2018-04-24 08:26:47)

問題解決のために、様々なアドバイスをありがとうございました。
色々と試した結果、事象が発生しなくなりました。

実は以前から、Excel上に印鑑を押すフリーソフト(Excel電子印鑑)を、アドインインストールして使用していましたが、そのソフトをアンインストールしたら再現しなくなりました。
なぜ、あの箇所でエラーが発生したかは解りませんが...

これで、スッキリした気持ちで次のステップに進めます。
本当にありがとうございました。
考えられることは、全てやってみる事ですね...

今回の事象は、今後勉強を進めていく上でも役に立ったと思います。
また、つまずいたら質問させて頂きますネ!


9832 : 小川慶一の回答 (2018-04-23 19:26:07)

受講生 さん:

そうですか。

少し問題の切り分けにつながりそうな情報ですね。
同じマシンでやるにしても、

・PC再起動
・エクセル2013, 2016の両方で試してみる
・別のログインユーザで試してみる

...等々、試されると良いかと思います。

たとえば、さらにそのうえで、以下のようなテストもやりがいがありそうです。

・サンプルデータを再度DLし、そのDLしたエクセルファイルのモジュールに、問題となったマクロを貼り付けて動作させてみる。
・サンプルデータを再度DLし、そのDLしたエクセルファイルで自動記録機能を使って同じようなマクロを再度作って動作させてみる。
・ファイルを置く先を別のフォルダにしてみる。

先に進んでもどちらでもよいです。
ですが、こういうのは気持ちわるいので、なんとか、その問題が再現しない状態を作ってみたいですね。


> ご回答頂きまして、ありがとうございます。
> どうやら私のPCだけで、発生している事象のようです。
> 他のPCでは、再現されませんでした。
>
> 暫く様子をみながら、次のステップに進みたいと思います。
> ありがとうございました。


9830 : 受講生さんのコメント (2018-04-23 18:53:06)

ご回答頂きまして、ありがとうございます。
どうやら私のPCだけで、発生している事象のようです。
他のPCでは、再現されませんでした。

暫く様子をみながら、次のステップに進みたいと思います。
ありがとうございました。


9828 : 小川慶一の回答 (2018-04-23 13:25:33)

受講生 さん:

こんにちは。

> 下記コードをF8のステップインをしながら実行すると「中断モードでは入力できません。」となります。普通にF5の実行なら問題なくできます。

この情報と、以下のソースコードだけでは分らないです。
また、念のために、このページからダウンロードできるサンプルファイルに同じマクロ変えて試してみましたが、僕の手元の環境では問題なく動作しました。

> なぜF8だとエラーになるのでしょうか?

僕自身は普段出くわさないようなタイプのエラーです。なので、僕も知見がありません。
ネットで調べる限りですと、エクセルファイルなり、取り扱っているシートなりに余計なゴミがあるとこういうエラーがよく出るということのように思えます。

再現するようでしたら、エクセルファイルごと送ってください。
調べてみます。




> いつも、楽しく勉強させて頂いています。
> 質問させてください。(2013・2016使用)
>
> 下記コードをF8のステップインをしながら実行すると「中断モードでは入力できません。」となります。普通にF5の実行なら問題なくできます。
>
> なぜF8だとエラーになるのでしょうか?
> 対処方法は、あるのでしょうか?

Sub Macro1()

    Sheets(Array("歳入", "歳出")).Select
    Sheets("歳出").Activate
    Sheets(Array("歳入", "歳出")).Copy
    
ココです→  ActiveWorkbook.SaveAs Filename:="C:\" & "renshu1" & "\" & "sample.xls", _
    FileFormat:=xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
        , CreateBackup:=False
    
    Sheets("歳出").Select
    Range("A23:F23").Select
    Selection.Delete Shift:=xlUp
    
    Sheets("歳入").Select
    Range("A23:F23").Select
    Selection.Delete Shift:=xlUp
    
    ActiveWorkbook.Save
    ActiveWorkbook.Close
End Sub


9826 : 受講生さんのコメント (2018-04-23 08:32:56)

いつも、楽しく勉強させて頂いています。
質問させてください。(2013・2016使用)

下記コードをF8のステップインをしながら実行すると「中断モードでは入力できません。」となります。普通にF5の実行なら問題なくできます。

なぜF8だとエラーになるのでしょうか?
対処方法は、あるのでしょうか?

Sub Macro1()

    Sheets(Array("歳入", "歳出")).Select
    Sheets("歳出").Activate
    Sheets(Array("歳入", "歳出")).Copy
    
ココです→  ActiveWorkbook.SaveAs Filename:="C:\" & "renshu1" & "\" & "sample.xls", _
    FileFormat:=xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
        , CreateBackup:=False
    
    Sheets("歳出").Select
    Range("A23:F23").Select
    Selection.Delete Shift:=xlUp
    
    Sheets("歳入").Select
    Range("A23:F23").Select
    Selection.Delete Shift:=xlUp
    
    ActiveWorkbook.Save
    ActiveWorkbook.Close
End Sub


9802 : 小川慶一の回答 (2018-04-21 10:20:56)

伊藤博文さん:

ログインしているユーザのユーザ名が 「a」であればこれでも動きそうです。

でも、たぶん、デスクトップのような特殊フォルダではなく、普通のフォルダにDLした資料一式を置いて処理したほうが簡単かと思います。

それか、 Thisworkbook.Path を活用して書き改めるか。
(Thisworkbookオブジェクトのプロパティなので基礎編なので紹介しませんでした。が、本当はそのほうが汎用性高くオススメです)

以上で解決の糸口になりそうでしょうか。
何かあればまたご相談ください。



小川




> お世話になります。
> この演習の練習問題と回答例は、以下からダウンロードで、保存先がデスクトップにあります。
> 動画のような、式にはならないのですが、
> 次の動画になると、怒られます。
> workbooks(”全部1つ.xls")では、だめなのですか。?
>
> Sub Macro1()
> '
> ' Macro1 Macro
>
> Sheets(Array("歳入", "歳出")).Select
> Sheets("歳出").Activate
> Sheets(Array("歳入", "歳出")).Copy
> ChDir "C:\Users\a\Desktop\配布物\01-課題一式\練習フォルダー"
> ActiveWorkbook.SaveAs Filename:= _
> "C:\Users\a\Desktop\配布物\01-課題一式\練習フォルダー\sample.xls", FileFormat:=xlExcel8, _
> Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
> CreateBackup:=False
> Sheets("歳出").Select
> Range("A23:F23").Select
> Selection.Delete Shift:=xlUp
> Sheets("歳入").Select
> Range("A23:F23").Select
> Selection.Delete Shift:=xlUp
> ActiveWorkbook.Save
> ActiveWorkbook.Close
> End Sub
>
> 変数を宣言して、foldrename,failname の変数を宣言して、その後の式がおかしいのです。
> 宜しくお願いします。


9798 : 伊藤博文さんのコメント (2018-04-21 08:03:59)

お世話になります。
この演習の練習問題と回答例は、以下からダウンロードで、保存先がデスクトップにあります。
動画のような、式にはならないのですが、
次の動画になると、怒られます。
workbooks(”全部1つ.xls")では、だめなのですか。?

Sub Macro1()
'
' Macro1 Macro

Sheets(Array("歳入", "歳出")).Select
Sheets("歳出").Activate
Sheets(Array("歳入", "歳出")).Copy
ChDir "C:\Users\a\Desktop\配布物\01-課題一式\練習フォルダー"
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\a\Desktop\配布物\01-課題一式\練習フォルダー\sample.xls", FileFormat:=xlExcel8, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
Sheets("歳出").Select
Range("A23:F23").Select
Selection.Delete Shift:=xlUp
Sheets("歳入").Select
Range("A23:F23").Select
Selection.Delete Shift:=xlUp
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub

変数を宣言して、foldrename,failname の変数を宣言して、その後の式がおかしいのです。
宜しくお願いします。


6653 : 小川慶一の回答 (2016-05-21 06:05:16)

多和田 真也 さん:

問題を再現できるサンプルコードください。
できれば、データ入りで。

>小川先生 質問させて下さい。
>
>同じひな型で約50社分のクライアントの財務分析用エクセルシートを作成しています。
>そのひな型のごく一部を変更する必要が出てきました。
>
>すでに会社ごとの財務データを入力してあるので、変更する部分だけを、for next構文を使って書換えようと
>しています。
>
>すべてのシートを.xlsmで作っているのですが、マクロを作成して実行してみると、一つのファイルを書き換えて、
>保存する際に、毎回『プライバシーに関する注意』というダイアログが出てきて、ダイアログのボタンをマウスでクリック
>しないと次に進めないため、ファイル数だけ手作業が発生してしまっています。
>
>この問題の、解決方法はないでしょうか。いちいちクリック動作をしないで、マクロで一気に実行できるようにしたいです。
>
>ちなみに、エクセルのバージョンは2007です。
>
>


6649 : 多和田 真也さんのコメント (2016-05-20 11:35:21)

小川先生 質問させて下さい。

同じひな型で約50社分のクライアントの財務分析用エクセルシートを作成しています。
そのひな型のごく一部を変更する必要が出てきました。

すでに会社ごとの財務データを入力してあるので、変更する部分だけを、for next構文を使って書換えようと
しています。

すべてのシートを.xlsmで作っているのですが、マクロを作成して実行してみると、一つのファイルを書き換えて、
保存する際に、毎回『プライバシーに関する注意』というダイアログが出てきて、ダイアログのボタンをマウスでクリック
しないと次に進めないため、ファイル数だけ手作業が発生してしまっています。

この問題の、解決方法はないでしょうか。いちいちクリック動作をしないで、マクロで一気に実行できるようにしたいです。

ちなみに、エクセルのバージョンは2007です。


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) 未習得

塾長 小川慶一

メニュー

コメント紹介

もっと見る

ページの先頭へ