
Excel中級、VBA初心者です。
仕事で添付画像のような処理⓵〜⓷を依頼され、一部でもいいのでなんとか手作業の部分を減らせないか、お知恵を頂けないかと思い初めて質問を投稿します。情報の提供不足や失礼がございましたらお手数ですが何なりとお申し付け下さい。
自分の考える簡易なフローチャートとしては
リンク元データ全12施設を縦に並べ、ハイパーリンクを関数か連続データで当てて、行ごとでシート分割し(ここはマクロで行けそうです)、下層として並べたフォルダを上層としての会社名フォルダにまとめる???というような流れかと思うのですが、もっとシンプルなアプローチもあるのではないかとも思うのです。
VBAの基本も一通り参考書を流して見たり検索したりしたのですが煩雑でよくわからなくなってしまいました。
実際には8000件のデータ数があるのでミスも多くなりそうで困っています。
全て解決とはならなくても、一部の作業でも短縮出来たら助かります。どのようなアドバイスでも構いません。どうぞよろしくお願いします。

A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
こんばんは、
>どのような手順で進めるのが一般的なのでしょうか?
既に各フォルダ、ファイルがある場合。
一般的かどうかは分かりませんが、FolderPickerを使ってフォルダを選び
ファイルを開く形でしょうか。
ご質問の様にフォルダ名とファイル名が同じ場合こんな感じでしょうか。
Sub sample()
Dim FSO As Object
Dim folderPath As String, targetName As String
Set FSO = CreateObject("Scripting.FileSystemObject")
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "会社名を選択してから施設番号フォルダを選択してください。"
.InitialFileName = "C:\Tmp\" '親フォルダのパス
If .Show = True Then folderPath = .SelectedItems(1)
End With
If folderPath = "" Then Exit Sub
targetName = FSO.GetFolder(folderPath).Name
If Dir(folderPath & targetName & ".xlsx") <> "" Then
Workbooks.Open folderPath & targetName & ".xlsx"
Else
MsgBox "ファイルが存在しません。", vbExclamation
End If
Set FSO = Nothing
End Sub
添付画像のような形にする場合は、
多分 UserFormでMSComctlLibのツリービューとDSO Framer ActiveXのDSO Framer Control Objectで
実現できるかと思いますが、現在使えるコントロールか分かりませんし(調べていません)、ハードルはかなり高いです。
また、UserFormを使わず、リボンを操作してツリービューの変わりになるような事も出来そうです。(アイコン付のコンボとか)
しかし、これもリボンXMLの知識が必要になります。が、ネットの情報はだいぶ増えましたので興味があれば調べてみてください。
多分、的外れだと思いますが参考まで
>上のブックのD列をそのままシート名にして、それぞれのシートに分割し、下のような1施設分のデータのみコピペしたシートへ
この分割シートは出来ているのですか
リンクについては、リンクの方法が良いのかなぁ?施設番号の数によるのでは無いでしょうか。
私みたいに変な事言う人が出てくるので、新しくスレ立てた方が良いかと思います。
No.4
- 回答日時:
こんにちは
図が良く読めないので、申し訳ありませんが、内容をきちんと把握せずに回答しています。
ご提示の使い勝手は、使う際の便利さを追求してのことと思いますが、VBAだけでは難しいと思われます。
VB等で簡易的なソフトを作成するつもりで行えば、可能かと思いますが、
>VBA初心者です
とのことですので、ハードルはかなり高いと思います。
>一部でもいいのでなんとか手作業の部分を減らせないか
ということであれば、VBAで可能な範囲での操作性や省力化を考えれば、機能的にはご質問とほぼ同等のもの(UIは少し劣るかも知れませんが)を作成することは可能ではないかと推測します。
フォルダやファイルの選択・表示(エクスプローラ的なUI)部分以外は、普通のVBAで充分処理できるもののように思われますので。
(すみませんが、内容を把握できてはいませんけれど。)
ちなみに、普通のファイル選択ダイアログ程度の操作性までならVBAで充分に実現可能です。
不勉強で、できる範囲と出来ない範囲が分かっておらず混乱させるような質問を投げてしまった事、申し訳なく思います。もう少し勉強して出直して参ります。お時間取って答えてくださったのでお二人共感謝ですがより詳しい答え方をして下さったのでこちらをベストアンサーにさせて頂きたいと思います。
不勉強で、できる範囲と出来ない範囲が分かっておらず混乱させるような質問を投げてしまった事、申し訳なく思います。レスも早く大変有り難かったです。
No.2
- 回答日時:
それで、①、②はエクスプローラー上での操作を言っているのですか?
それとも、例えばエクセルのA列に上層のフォルダ、B列に下層のフォルダを表示させてといった具合に1ブック内で行っているのですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelのVBAでフォルダ指定がで...
-
ファイル名と同名のフォルダを...
-
Excelのハイパーリンクについて...
-
Access VBA で フォルダ権限...
-
ファイルとフォルダのどちらも...
-
VBA フォルダの複数選択ができない
-
パス名に2バイト文字(マルチバ...
-
ThisWorkbookがあるフォルダ更...
-
ダイアログでフォルダ名を取得...
-
ACCESS VBAからのファイル削除
-
excel VBA Dirにて検索したフォ...
-
【コマンドプロンプト】名前順...
-
Debug フォルダは消していいの?
-
ディレクトリ名変更してコピー...
-
Windows10でコマンドプロンプト...
-
エクセル マクロで任意のフォ...
-
VB6で7-ZIPのAPIを使用した圧縮...
-
会社のネットワーク上のファイ...
-
VBScriptでフォルダ参照ダイア...
-
フォルダ選択処理について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル名と同名のフォルダを...
-
Windows10でコマンドプロンプト...
-
会社のネットワーク上のファイ...
-
パス名に2バイト文字(マルチバ...
-
デスクトップの画像をhtmlに表...
-
ExcelのVBAでフォルダ指定がで...
-
C ファイル出力で、フォルダが...
-
Excelのハイパーリンクについて...
-
VBA 最新のフォルダ取得
-
【マクロ】フォルダにファイル...
-
【ExcelVBA】一覧表の記載に従...
-
【マクロ】ファイル名の日付に...
-
エクセルマクロで指定フォルダ...
-
フォルダにリンクを貼りたい
-
サーバ内のフォルダ名と各フォ...
-
Excelvbaでブックをコピー名前...
-
ThisWorkbookがあるフォルダ更...
-
excelマクロ 冒頭3文字が一致す...
-
VBA フォルダ名に特定の文字を...
-
Downloaded Program Filesはど...
おすすめ情報
反応して頂いて大変ありがたいです。すいません補足し忘れていました。自宅がMacOS環境なのでサンプルはおおよそのイメージになってしまいますがですが実際使う職場はExplorerです。画質が劣化してしまうのですね。チェックが足らず申し訳ありません。少し見易くしてみたのですがいかがでしょうか?
⓵、⓶はエクスプローラー上の表示
になります。
出来ないんですね。それが分かっただけでも1UPしました。m_ _mそれでは、上のブックのD列をそのままシート名にして、それぞれのシートに分割し、下のような1施設分のデータのみコピペしたシートへのリンクを貼って(D列に貼るかもしくは別にリンクするセルを作ってもいいです)、D2セルの「AA」をクリックしたらAAのシートに飛ぶようにするには、方法がありますでしょうか?それとも質問が変わるので新しくスレ立てた方が良いのでしょうか?作法がわからずすいません。