20以上あるファイルを1シートにまとめるため、ネットで見つけた下記2つのプログラムを使おうとしたところ、周囲から「情報漏えいの罠が仕掛けられていないのか」と指摘されました。どなたか判断いただけませんでしょうか?
●複数ファイルを「1ファイル複数シート」にまとめるマクロ
Sub matome()
Application.ScreenUpdating = False
Set mb = ThisWorkbook
myfdr = ThisWorkbook.Path
fname = Dir(myfdr & “\*.xlsx”)
Do Until fname = Empty
If fname <> mb.Name Then
Set wb = Workbooks.Open(myfdr & “\” & fname)
wb.Worksheets.Copy Before:=mb.Sheets(mb.Sheets.Count)
wb.Close
n = n + 1
End If
fname = Dir
Loop
Application.ScreenUpdating = True
MsgBox n & “まとめ終了”
End Sub
●複数シートを1シートにまとめるマクロ
Sub CombSh()
Dim i As Integer
Dim eRow As Long
Dim mySh As Worksheet
ActiveWorkbook.Sheets.Add before:=Sheets(1)
ActiveSheet.Name = "統合"
Set mySh = ActiveSheet
mySh.Range("A2:AA2").Value = Sheets(2).Range("A2:AA2").Value
For i = 2 To Sheets.Count
Sheets(i).Select
eRow = Cells(Rows.Count, "A").End(xlUp).Row
Range(Cells(3, "A"), Cells(eRow, "AA")).Copy Destination:=mySh.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
Next
mySh.Select
Set mySh = Nothing
End Sub
昨今のネット社会の状況など踏まえ、社内のセキュリティ的に言って「周囲からの・・指摘・・」は正しいと思います。むしろ知識がないので、安全かどうかわからないので指摘しているのであって、なにも言われないよりも結果的には良いのではないでしょうか。またなにもわからずコピペで動かしちゃうよりも、こういう場にご質問されるのも、事前に情報漏えいを防ぐのには良いのではないでしょうか?信用できるかどうかということであれば、最終的な判断はそのような第三者的なチェック機関(実際あるかどうかは存じませんが)に依頼されたほうが良いかも。また表題のマクロ程度であれば、一般的な社内SEの判断で十分です。
あと、このマクロ特に問題ないようです。しいて言えば、処理中エクセルファイル開いていますが(*.xlsx)ここでマクロファイル(*.xlsm)となる場合注意されたほうが良いかと。
既に良い回答 や コメントが出ているのでポイントは0にしてください。
蛇足ですが、
サンプルコードを打ち込まなくてもよいように、
ファイルとしてダウンロード可能なサイトも存在していると思います。
三流君VBA:VBA Outlook リッチテキスト形式のメール で グラフを送る
↑手前味噌の私のサイトですが、
サンプルコードと一緒に
ダウンロードして実行可能なファイルを提供しています。
↑ダウンロード可能なファイルが置いてあります。
この作者が(ここでは、私ですが)
悪意のある作者で、
解説・表示されている以外のコードを忍ばせていたら・・・
もしくは、この作者の不注意で
悪意は無くても、ウイルスに感染していて、
アップしたファイルが感染していたら・・・
など、いろいろダウンロードファイルは危険が0パーセントではないのかも。
表示してあるコードを検証して
コピペで使用するのは良いと思いますが(なかなか説得が大変そうですが)
ダウンロードしたファイルは注意かな。
質問はネット上のコードの話なので、
ダウンロードファイルについての蛇足回答がかなりズレてますが、
私もこのダウンロードファイルは安全ですか?
と不定期で質問をいただくので、
ネット上に転がっているコードの使用はみなさん気を使われているんだなぁと思いました。
※知らないコードをコピペで使うのは、確かに危険だけど、
検証・確認して 使えば OKだと思います。←それが難しいかもしれないし、
長々 ズレた回答すみませんでした。
ですよね。。。
2017/06/24 16:14:23ただ、無知の悲しいところ、それを反論するための知識は私には持ち合わせていなかったんですよね、、、。ありがとうございます!