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

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

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

解説

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

前回の演習で作成したマクロを、複数部署へのファイル配布を行うマクロに改変します。

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

11383 : 小川慶一の回答 (2019-05-04 23:29:36)

ジュリアンさん:

こんばんは。

すいません、お返事漏れていました。

> 先日質問させていただいたFor Nextの使い方について、迷わなくなりました。

それは、よかったです。

理論には、どうしても、実践を伴わないと理解が追いつかないものがあります。
簡単そうな技術についても詳細に理解するには実践が必要ですし、抽象度のより高い技術についても、理解するには実践が必要です。

実践は、身体活動を伴った理論理解のためのひとつの手段、とも言えます。

(身体活動を伴った、実践で)細かいミスがなくなるということは、より詳細な、あるいは、より抽象度の高い理論を理解するための準備にもなります。

あえてまわりくどい言い方をすると、ジュリアンさんのおっしゃる「到達点」とは、まさに、そういう、理論をよりしっかり学ぶための準備ということになります。

ひきつづきよろしくお願いいたします。


> 小川先生が動画の中で度々お話しされているように、
> 繰り返しコードを打つことで段々と身に付いてきました。
> 特に、フォローアップのbasicから一問ずつ繰り返すことにより、
> 先日質問させていただいたFor Nextの使い方について、迷わなくなりました。
> 今回のマクロでは、細かいケアレスミスをしなくなる(その都度ミスに気が付く)というのがひとつの到達点だと感じています。


11380 : マサラさんのコメント (2019-04-29 17:09:01)

小川先生が動画の中で度々お話しされているように、
繰り返しコードを打つことで段々と身に付いてきました。
特に、フォローアップのbasicから一問ずつ繰り返すことにより、
先日質問させていただいたFor Nextの使い方について、迷わなくなりました。
今回のマクロでは、細かいケアレスミスをしなくなる(その都度ミスに気が付く)というのがひとつの到達点だと感じています。


10524 : 小川慶一の回答 (2018-08-30 08:09:24)

ゲストさん:

おはようございます。

そうでしたか。ともあれ、解決してよかったです。

> そもそも、コードを書いていて、「フォルダ」の件について自分で気づかないということはやはり基礎がわかってないというか、理解できていないのだと思います。一から学びなおします。

今回ご提供した動画4本も、よい学びになるかと思います。
この機会にどうぞ。

ひきつづきよろしくお願いいたします。


> 10512です。お返事ありがとうございます。
> 本当に申し訳ございません。そもそも大きな勘違いをしていたことに気づきました。。
> ご指摘の通り「配布先フォルダa」がなかったのが原因でした。というのも、この課題を見たときに頭から「フォルダも作成するマクロ」だと、勝手に勘違いしていたのです。お恥ずかしい限りです。
> ご丁寧に動画もご提示いただき、本当にありがとうございました。お手数おかけして申し訳ございませんでした。コードは自分で修正して無事動きました・・
> 貴重なお時間をいただいてしまい、心よりお詫びいたします。
>
> そもそも、コードを書いていて、「フォルダ」の件について自分で気づかないということはやはり基礎がわかってないというか、理解できていないのだと思います。一から学びなおします。


10520 : ゲストさんのコメント (2018-08-30 01:10:29)

10512です。お返事ありがとうございます。
本当に申し訳ございません。そもそも大きな勘違いをしていたことに気づきました。。
ご指摘の通り「配布先フォルダa」がなかったのが原因でした。というのも、この課題を見たときに頭から「フォルダも作成するマクロ」だと、勝手に勘違いしていたのです。お恥ずかしい限りです。
ご丁寧に動画もご提示いただき、本当にありがとうございました。お手数おかけして申し訳ございませんでした。コードは自分で修正して無事動きました・・
貴重なお時間をいただいてしまい、心よりお詫びいたします。

そもそも、コードを書いていて、「フォルダ」の件について自分で気づかないということはやはり基礎がわかってないというか、理解できていないのだと思います。一から学びなおします。


10519 : 小川慶一の回答 (2018-08-29 18:48:14)

ゲストさん:

お返事、遅れました。

> ファイル'D:\renshu\配布先フォルダa\'にアクセスできません。次のいずれかの理由が考えられます。
> Dドライブには間違いなく「renshu」フォルダが存在します。

「配布先フォルダa」はありますでしょうか。

ある場合は...。
ご回答用に新たに解説動画を作りましたので、これを見て、ご自身でも調査いただけますでしょうか。

以下に置いてあります。(サンプルコードつき)
https://www.dropbox.com/sh/t48zkshqbw41fuq/AADMiFgklgIJqS9txNpcoBC7a?dl=0


まずは、よろしくお願いいたします。




> こんにちは。いつもお世話になっております。
> ファイルを保存するところで、エラーになり進めないでおります。
>
> 実行時エラー 1004
>
> ファイル'D:\renshu\配布先フォルダa\'にアクセスできません。次のいずれかの理由が考えられます。
> ・ファイル名またはパスが存在しません
> ・ファイルが他のプログラムによって使用されています
> ・保存しようとしているブックと同じ名前のブックが現在開かれています
>
> Dドライブには間違いなく「renshu」フォルダが存在します。
> どのようにしたら解決しますでしょうか。
>
>
> ---------------------------------------------------------------------

Sub renshumacro()
Dim foldername
Dim filename
Dim gyo

    foldername = Workbooks("全部1つ.xls").Sheets("部署情報").Range("D2").Value
    filename = Workbooks("全部1つ.xls").Sheets("部署情報").Range("E2").Value

    Workbooks("全部1つ.xls").Sheets(Array("歳入", "歳出")).Select
    Workbooks("全部1つ.xls").Sheets("歳出").Activate
    
    Workbooks("全部1つ.xls").Sheets(Array("歳入", "歳出")).Copy '←この段階で新しいファイルができた
    ActiveWorkbook.SaveAs filename:="D:\renshu\" & foldername & "\" & filename, FileFormat:= _
        xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
        , CreateBackup:=False
        
    Workbooks(filename).Sheets("歳出").Select
    Workbooks(filename).Sheets("歳出").Range("A23:D23").Select
    Selection.Delete Shift:=xlUp
    
    Workbooks(filename).Sheets("歳入").Select
    Workbooks(filename).Sheets("歳入").Range("A23:D23").Select
    Selection.Delete Shift:=xlUp
    
    Workbooks(filename).Save
    Workbooks(filename).Close
    
End Sub


10512 : ゲストさんのコメント (2018-08-25 18:25:18)

こんにちは。いつもお世話になっております。
ファイルを保存するところで、エラーになり進めないでおります。

実行時エラー 1004

ファイル'D:\renshu\配布先フォルダa\'にアクセスできません。次のいずれかの理由が考えられます。
・ファイル名またはパスが存在しません
・ファイルが他のプログラムによって使用されています
・保存しようとしているブックと同じ名前のブックが現在開かれています

Dドライブには間違いなく「renshu」フォルダが存在します。
どのようにしたら解決しますでしょうか。


---------------------------------------------------------------------
Sub renshumacro()
Dim foldername
Dim filename
Dim gyo

foldername = Workbooks("全部1つ.xls").Sheets("部署情報").Range("D2").Value
filename = Workbooks("全部1つ.xls").Sheets("部署情報").Range("E2").Value

Workbooks("全部1つ.xls").Sheets(Array("歳入", "歳出")).Select
Workbooks("全部1つ.xls").Sheets("歳出").Activate

Workbooks("全部1つ.xls").Sheets(Array("歳入", "歳出")).Copy '←この段階で新しいファイルができた
ActiveWorkbook.SaveAs filename:="D:\renshu\" & foldername & "\" & filename, FileFormat:= _
xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False

Workbooks(filename).Sheets("歳出").Select
Workbooks(filename).Sheets("歳出").Range("A23:D23").Select
Selection.Delete Shift:=xlUp

Workbooks(filename).Sheets("歳入").Select
Workbooks(filename).Sheets("歳入").Range("A23:D23").Select
Selection.Delete Shift:=xlUp

Workbooks(filename).Save
Workbooks(filename).Close

End Sub


9820 : 小川慶一の回答 (2018-04-22 08:36:39)

伊藤博文さん:

拝見しました。
このマクロ単体としては、これできちんと動作しているなら、特に問題ないかと思います。

まずはよかったです。

「fail_name」という変数名だけ気になりますが。(「ファイル」は英語では "file"。"fail"は「失敗」です)

>お世話になっております。
>昨日より、データ記入用ファイルを配布する演習問題に取り組んでいますが、ご指導していただいた結果、下記の式となりました。
>一応、C:\配布物\01-課題一式\配布先フォルダaに、"a.xls"が保存できるようになりました。
>結果報告として、下記の式で問題がないとおもうのですが、確認していただきたくおもいますので、宜しくお願いします。

Sub Macro1()
'
' Macro1 Macro
'
    Dim folder_name
    Dim fail_name
    Dim gyo
    
    folder_name = Workbooks("全部1つ.xls").Sheets("部署情報").Range("D2").Value
    fail_name = Workbooks("全部1つ.xls").Sheets("部署情報").Range("E2").Value
    
    Workbooks("全部1つ.xls").Sheets(Array("歳入", "歳出")).Select
    Workbooks("全部1つ.xls").Sheets("歳出").Activate
    
    Workbooks("全部1つ.xls").Sheets(Array("歳入", "歳出")).Copy
    ActiveWorkbook.SaveAs Filename:="C:\配布物\01-課題一式\" & folder_name & "\" & fail_name, _
        FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
    
    Workbooks(fail_name).Sheets("歳出").Select
    Workbooks(fail_name).Sheets("歳出").Range("A23:F23").Select
    Selection.Delete Shift:=xlUp
    
    Workbooks(fail_name).Sheets("歳入").Select
    Workbooks(fail_name).Sheets("歳入").Range("A23:F23").Select
    Selection.Delete Shift:=xlUp
    
    Workbooks(fail_name).Save
    Workbooks(fail_name).Close
End Sub


9818 : 伊藤博文さんのコメント (2018-04-22 08:13:21)

お世話になっております。
昨日より、データ記入用ファイルを配布する演習問題に取り組んでいますが、ご指導していただいた結果、下記の式となりました。
一応、C:\配布物\01-課題一式\配布先フォルダaに、"a.xls"が保存できるようになりました。
結果報告として、下記の式で問題がないとおもうのですが、確認していただきたくおもいますので、宜しくお願いします。


Sub Macro1()
'
' Macro1 Macro
'
Dim folder_name
Dim fail_name
Dim gyo

folder_name = Workbooks("全部1つ.xls").Sheets("部署情報").Range("D2").Value
fail_name = Workbooks("全部1つ.xls").Sheets("部署情報").Range("E2").Value

Workbooks("全部1つ.xls").Sheets(Array("歳入", "歳出")).Select
Workbooks("全部1つ.xls").Sheets("歳出").Activate

Workbooks("全部1つ.xls").Sheets(Array("歳入", "歳出")).Copy
ActiveWorkbook.SaveAs Filename:="C:\配布物\01-課題一式\" & folder_name & "\" & fail_name, _
FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False

Workbooks(fail_name).Sheets("歳出").Select
Workbooks(fail_name).Sheets("歳出").Range("A23:F23").Select
Selection.Delete Shift:=xlUp

Workbooks(fail_name).Sheets("歳入").Select
Workbooks(fail_name).Sheets("歳入").Range("A23:F23").Select
Selection.Delete Shift:=xlUp

Workbooks(fail_name).Save
Workbooks(fail_name).Close
End Sub


9812 : 小川慶一の回答 (2018-04-21 21:48:18)

伊藤博文さん:

まずは良かったです。

本来なら、フォルダを指定してファイル操作するプログラムの話の前提として、特殊フォルダの話もするべきなのかもしれませんね。
「エクセルマクロを書く人のための、ウィンドウズの基礎知識」というような講座を作るべきかもしれません。そういうところでしっかり話しておくと、伊藤さんの今回のトラブルのようなことが減るでしょうし、説明の必要が生じたとしても、動画での解説のほうがより分かりやすいでしょうし。

ひきつづきよろしくお願いいたします。


> お世話になっております。
> 先ほどの、ご指導していただきましたことをおこないました。
> Cドライブ内にrensyuのフォルダを作成しました。
> やはり小川先生がご指導していただいた内容が
> バッチリハマってできました。
> ひとつトラブルとなかなか、理解がおいついてないもので、
> 上手くできませんでした。
> 本当に、わかりやすい解説・ご指導ありがとうございました。
> 今後ともよろしくお願いいたします。


9811 : 伊藤博文さんのコメント (2018-04-21 21:03:16)

お世話になっております。
先ほどの、ご指導していただきましたことをおこないました。
Cドライブ内にrensyuのフォルダを作成しました。
やはり小川先生がご指導していただいた内容が
バッチリハマってできました。
ひとつトラブルとなかなか、理解がおいついてないもので、
上手くできませんでした。
本当に、わかりやすい解説・ご指導ありがとうございました。
今後ともよろしくお願いいたします。


9810 : 小川慶一の回答 (2018-04-21 19:30:43)

伊藤博文さん:

以下について。

Sub sample1()
    Dim FolderName
    Dim file_name
    ActiveWorkbook.SaveAs Filename:="C:\Users\a\" & FolderName & "\" & file_name, _
    FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
    ReadOnlyRecommended:=False, CreateBackup:=False
End Sub


というか、その中の、以下の部分について。

>filename:="C:\Users\a\" & foldername & "\" & file_name

上に引用した部分では、ファイルの保存先を指定しています。
コードを読んでみると、ここでは、 Cドライブの「Users」というフォルダの中にある、「a」というフォルダの...というフォルダを指定していますね。

Cドライブの「Users」というフォルダの中に「a」というフォルダはありますでしょうか?なければここでエラーが出ます。
あったとしても、変数「folername」で指定されたフォルダがなければやはりエラーがでます。

まずは、ここまではご理解できますでしょうか?
ファイル保存先として指定されたフォルダがないことが、エラーの原因です。


理解できたという前提で、次の話をします。

この演習は、CドライブとかDドライブとかに、 "renshu" 等の名称のフォルダを自分で作り、そこでやってください。

たとえば、Cドライブにフォルダ「fuga」というフォルダを作ってそこで作業したなら、上に引用した部分は、以下のとおりに書き直します。

>filename:="C:\fuga\" & foldername & "\" & file_name

あるいは、Dドライブにフォルダ「hoge」というフォルダを作ってそこで作業したなら、上に引用した部分は、以下のとおりに書き直します。

>filename:="D:\hoge\" & foldername & "\" & file_name

上記のとおりですので、ここまでの作業で作ったものをなんとか手直ししてやろうとするより、最初からやりなおしたほうが良いと思います。


デスクトップにしろ、マイドキュメントにしろ、どちらも、特殊フォルダです。
ここで言う「特殊」というのは、「エクスプローラーのアドレスバーにある表記からは、そのフォルダの真の所在を知りえない」という意味です。
(VBで調べることはできますが、これ以上いろいろ詰め込むと伊藤さんの頭がパンクする気がするのでそのやり方は示しません)

デスクトップやマイドキュメントは、その実態は、

ログインユーザ名が「piyo」なら

C:\Documents and Settings\piyo\デスクトップ\
C:\Documents and Settings\piyo\マイドキュメント\

ログインユーザ名が「uni」なら

C:\Documents and Settings\uni\デスクトップ\
C:\Documents and Settings\unio\マイドキュメント\

とかになることが多いです。
(断言しません。PCやログインユーザの設定次第で変わることもあるので。実際、僕の手元のPCでは、設定をいじっているので、ぜんぜん違うフォルダになっています)


ここまで、どうでしょうか?すんなり理解できましたでしょうか。

もしすんなり理解できなかったのであれば、コードの手直しだけでささっと解決できる問題ではないです。
なので、この演習は、CドライブとかDドライブとかに、 "renshu" 等の名称のフォルダを自分で作り、そこでやりなおすことをオススメします。

もしすんなり理解できたのであれば、このまま手元のコードをグチャグヂャいじるより、イチからやりなおしたほうが簡明だということもご理解いただけると思います。
その場合も、この演習は、CドライブとかDドライブとかに、 "renshu" 等の名称のフォルダを自分で作り、そこでやりなおすことをオススメします。

つまり、どちらにしても、この演習は、CドライブとかDドライブとかに、 "renshu" 等の名称のフォルダを自分で作り、そこでやりなおすことがオススメです。
面倒に感じられるかもしれませんが、そういうときこそ、ここまでの軌跡を再度たどること自体、よい復習になるでしょう。


特殊フォルダのパスの取得方法については、この問題を僕がオススメする方法で解決されたあと、伊藤さんがさらにご興味あれば、お伝えしたいと思います。

ざっと、以上のとおりです。



> お世話になります。
>
> 先ほど、指導していただきましたが、保存先をドキュメントにして、
> 試みましたが、また怒られました。
> よくわかりません。ご指導宜しくお願いします。

Sub Macro1()
'
' Macro1 Macro
'
    Dim foldername
    Dim file_name
    Dim gyo
    
    foldername = Workbooks("全部1つ.xls").Sheets("部署情報").Range("C2").Value
    file_name = Workbooks("全部1つ.xls").Sheets("部署情報").Range("D2").Value
    
    Workbooks("全部1つ.xls").Sheets(Array("歳入", "歳出")).Select
    Workbooks("全部1つ.xls").Sheets("歳出").Activate
    
    Workbooks("全部1つ.xls").Sheets(Array("歳入", "歳出")).Copy
    ActiveWorkbook.SaveAs filename:="C:\Users\a\" & foldername & "\" & file_name, _
        FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False

    Workbooks(file_name).Sheets("歳出").Select
    Workbooks(file_name).Sheets("歳出").Range("A23:F23").Select
    Selection.Delete Shift:=xlUp
    
    Workbooks(file_name).Sheets("歳入").Select
    Workbooks(file_name).Sheets("歳入").Range("A23:F23").Select
    Selection.Delete Shift:=xlUp
    
    Workbooks(file_name).Save
    Workbooks(file_name).Close
End Sub


9809 : 伊藤博文さんのコメント (2018-04-21 16:43:52)

お世話になります。

先ほど、指導していただきましたが、保存先をドキュメントにして、
試みましたが、また怒られました。
よくわかりません。ご指導宜しくお願いします。


Sub Macro1()
'
' Macro1 Macro
'
Dim foldername
Dim file_name
Dim gyo

foldername = Workbooks("全部1つ.xls").Sheets("部署情報").Range("C2").Value
file_name = Workbooks("全部1つ.xls").Sheets("部署情報").Range("D2").Value

Workbooks("全部1つ.xls").Sheets(Array("歳入", "歳出")).Select
Workbooks("全部1つ.xls").Sheets("歳出").Activate

Workbooks("全部1つ.xls").Sheets(Array("歳入", "歳出")).Copy
ActiveWorkbook.SaveAs filename:="C:\Users\a\" & foldername & "\" & file_name, _
FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False

Workbooks(file_name).Sheets("歳出").Select
Workbooks(file_name).Sheets("歳出").Range("A23:F23").Select
Selection.Delete Shift:=xlUp

Workbooks(file_name).Sheets("歳入").Select
Workbooks(file_name).Sheets("歳入").Range("A23:F23").Select
Selection.Delete Shift:=xlUp

Workbooks(file_name).Save
Workbooks(file_name).Close
End Sub


9575 : ガラパゴスタディー齋藤さんのコメント (2018-03-12 22:46:27)

受講生 さん:

ご連絡頂きありがとうございます。
調査しましたところ、ファイルの圧縮ソフト+Lhacaの機能により、圧縮時にからのフォルダーが削除されておりました。回避策を取りましたので現在はどちらのダウンロードデータにもご指摘のフォルダーが存在しています。

このような部分は中々気付けずにいることもありますので、引き続き何かお気づきの点はお気軽にご連絡頂けますでしょうか。
この度はご連絡を頂きありがとうございました。

> いつもお世話になっています。充実した内容で有意義に勉強させてもらっています。
> 質問ではないのですが、基礎編フォローアップ33回の配布データについて、回ごとのデータダウンロードでは作成先フォルダが空フォルダとして既に用意されていますが、講座のトップから一式データダウンロードすると上記の空フォルダが存在しません。既にお気づきでしたら、お気遣いなくお願いします。


9566 : 受講生さんのコメント (2018-03-11 20:50:52)

いつもお世話になっています。充実した内容で有意義に勉強させてもらっています。
質問ではないのですが、基礎編フォローアップ33回の配布データについて、回ごとのデータダウンロードでは作成先フォルダが空フォルダとして既に用意されていますが、講座のトップから一式データダウンロードすると上記の空フォルダが存在しません。既にお気づきでしたら、お気遣いなくお願いします。


9142 : 小川慶一の回答 (2017-11-25 08:46:52)

受講生 さん:

>  ”&” ちょん・あんど・ちょん と言いながら一つ一つ確認しながらやってみるとうまくいった。

言語能力の訓練なので、声にだすことはとても有効です。
ひととおり演習を終えたら、基礎フォローの演習をもう一度最初からそういうやり方でやりなおされるとよいでしょう。

> 何より失敗して解決していく過程が大事だと実感した。

はい、理系科目はそれが大切です v(^^*
とはいえ、あまり深刻なハマり方する前に、気軽に質問してくださいね。

> ・作業ホルダーと保存先フォルダーの関係に気をつける。

発展編1まで進むとここらの話をしっかり取り扱えるようになるかと思います。


9141 : 受講生さんのコメント (2017-11-25 08:24:04)

・変数の置き換えがやっぱり重要
 ”&” ちょん・あんど・ちょん と言いながら一つ一つ確認しながらやってみるとうまくいった。
・作業ホルダーと保存先フォルダーの関係に気をつける。
(ここでつまづいて解決するのに60分かかった。が、勉強になった)
何より失敗して解決していく過程が大事だと実感した。
・ファイルの配布ができるようになった!


8121 : 小川慶一の回答 (2017-05-13 19:32:40)

受講生 さん:

> また、作成されたファイルを開こうとすると以下の確認メッセージが表示されます。

ご質問の件。
エクセルがファイルを保存するときのファイル形式と実際に保存させるファイルの形式が合わないことから起きている問題です。

講座内で提示したサンプルコードでは FileFormat:=xlExcel8 と、 .xls の拡張子のファイルを指定しています。
シート「部署情報」のE列でも、ファイル名を .xls の拡張子で指定していますね。
この場合は、両者とも .xls なのでOKです。

一方、いただいたサンプルコードでは、
FileFormat:=xlOpenXMLWorkbookMacroEnabled としていますね。これは、拡張子 .xlsm のファイルを指定する書き方です。


> 処理に時間がかかるのは、基礎編の知識で書いているからですか?

ファイルの作成が絡むとそうでない場合に比して、目に見えて遅くなりますね。
これは基礎編レベルだからということではないです。発展編の方法でも、ファイルを保存する部分は時間がちょっとかかります。

それはそうと、基礎編では、「キレイに仕上がる」とかそういうことは目指していません。最低限の道具をお渡しして、とにかくその道具だけで仕事をできるようにということで例題とその解説を用意しています。
なんで、発展編レベルの知識があれば簡単に解決できることも、あえて、力業で行っいるようなところがあります。

ということで、では、発展編レベルになるとどうなるか?ということですが。。

[1] 処理速度

同様のアルゴリズムで処理する分には対して変わりません。
まったく違うアプローチの構文で処理する場合は大きく向上します。

[2] コードの可読性

大きく向上します。
1行が横長になることも減りますし、同じ機能を実現するのに必要な行数も減ります。
その結果、可読性が高まるので、より複雑な処理を書ききるだけの余裕も生まれます。


8118 : 受講生さんのコメント (2017-05-12 21:55:32)

小川先生

基礎編の知識だけでここまでのことができるなんて!
実際にファイルが作成されたのを確認して、心底感動しました!!
マクロを書いている間も楽しかったです^^
処理に時間がかかるのは、基礎編の知識で書いているからですか?
それともこの程度の処理であれば、発展編以降の知識で書いてもこのくらいは
時間がかかるのでしょうか?

また、作成されたファイルを開こうとすると以下の確認メッセージが表示されます。
”開こうとしているファイル'a.xls'は、実際にはその拡張子が示すファイル形式ではありません。
このファイルを開く前に、ファイルが破損していないこと、信頼できる発行元からのファイルであることを確認してください。
ファイルを今すぐ開きますか?”
「はい」をクリックすると中身は問題なく表示されますが、保存の構文に問題あるのでしょうか・・・

ちなみに保存にかかわる構文(抜粋)は以下の通りです。
Dim sakuseisaki
Dim filen

sakuseisaki = Workbooks("全部1つ").Worksheets("部署情報").Range("D" & busyo).Value
filen = Workbooks("全部1つ").Worksheets("部署情報").Range("E" & busyo).Value

ChDir "C:\Users\hasegawa\Desktop\ensyu_copy\01-課題一式"
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\hasegawa\Desktop\ensyu_copy\01-課題一式\" & sakuseisaki & "\" & filen & "", FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

ご教授いただければ幸いです。
よろしくお願いいたします。


6447 : 小川慶一の回答 (2016-04-18 11:02:52)

塩野 勝大 さん:

動かないマクロを投稿画面に貼りつけてください。
よろしくお願いしまず。

>初めて質問します。基礎編フォローアップの33講義目の1分30秒あたりのところで、自動記録したところにfoldernameとfilenameを貼り付ける作業までしたところで実行すると
>実行時エラー1004となり、ファイルにアクセルできませんでしたと表示されます。何度か試したのですがわかりません。どのようにしたらいいのでしょうか。


6445 : 小川慶一の回答 (2016-04-18 11:01:26)

ゲスト さん:

よろしくお願いします。

ご質問の件について。
モレのあるなしをチェックは、複数シート間でidをキーにマッチングしていけばよいですね。その手法についてはここまでにいろいろ解説してきましたが、さらにどんなアレンジが必要そうでしょうか。
id以外のところのチェックがどれだけ必要かは、運用する現場の状況によります。ルールを示せばそのとおりに作業してくれる人ばかりの職場ならチェックなんてほとんど要りませんが、手元が怪しい人、ITセンスのない人ばかりの職場だと、チェックの仕組みをかなり作りこむ必要があります。

効率のよさを追求するならマクロの書き方もいろいろありますが、そういう方法についての解説は、発展編以降で。
基礎編の守備範囲は、「ベタな方法ででも、とにかくエクセル内での処理であればだいたいマクロでやれきれる」というところまでです。


>小川先生へ。
>
>はじめて質問致します。
>基礎編、発展編1を受講中です。さて、本編のようなケースでは、配布前に、元データと配布するデータとの間に、モレがないかのを検証する必要があると思います。
>どのように検証する方法が効率がよいのでしょうか。ご教授いただけますでしょうか。
>何卒よろしくお願い致します。


6429 : 塩野 勝大さんのコメント (2016-04-14 15:01:58)

初めて質問します。基礎編フォローアップの33講義目の1分30秒あたりのところで、自動記録したところにfoldernameとfilenameを貼り付ける作業までしたところで実行すると
実行時エラー1004となり、ファイルにアクセルできませんでしたと表示されます。何度か試したのですがわかりません。どのようにしたらいいのでしょうか。


6426 : ゲストさんのコメント (2016-04-13 22:06:16)

小川先生へ。

はじめて質問致します。
基礎編、発展編1を受講中です。さて、本編のようなケースでは、配布前に、元データと配布するデータとの間に、モレがないかのを検証する必要があると思います。
どのように検証する方法が効率がよいのでしょうか。ご教授いただけますでしょうか。
何卒よろしくお願い致します。


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

塾長 小川慶一

メニュー

コメント紹介

もっと見る

ページの先頭へ