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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロVBAのフォルダ階層別で検索の方法 4 2022/04/03 23:23
- その他(データベース) Excel VBA 転記について 1 2022/04/20 16:55
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- Visual Basic(VBA) VBAマクロ 決まっていない行を選択して別シートへ貼付け 4 2023/02/16 16:08
- Visual Basic(VBA) 【VBA】データを入力後に,同一シート内に履歴として転記するVBAコードを教えていただきたいです。 3 2022/11/16 01:37
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- その他(社会・学校・職場) 業務内容についてどう思いますか? 私は客先の仕事を下請けとして行うという仕事をしていますが、(客先の 2 2022/05/04 16:17
- その他(社会・学校・職場) 業務内容についてどう思いますか? 私は客先の仕事を下請けとして行うという仕事をしていますが、(客先の 3 2022/05/04 17:55
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
ファイル名と同名のフォルダを...
-
ExcelのVBAでフォルダ指定がで...
-
フォルダ内のPDFファイル名を変...
-
エクセルのマクロについて教え...
-
windowsでテキストファイルの各...
-
VBA 最新のフォルダ取得
-
【マクロ】ファイル名の日付に...
-
フォルダを開いて、閉じるのプ...
-
Excelで指定したフォルダに保存...
-
Access VBA で フォルダ権限...
-
保存先のフォルダ名を指定した...
-
多量のファイルをフォルダに自...
-
VS2005で"定義へ移動"ができません
-
バッチファイルで指定フォルダ...
-
ディレクトリ名変更してコピー...
-
Excel VBA で フォルダ名の一部...
-
[VBS] Unicodeの文字化けを防ぎ...
-
Excelのハイパーリンクについて...
-
VBScriptで空フォルダ圧縮
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
windowsでテキストファイルの各...
-
VBA 最新のフォルダ取得
-
ファイル名と同名のフォルダを...
-
VBA フォルダ名に特定の文字を...
-
デスクトップの画像をhtmlに表...
-
Excelのハイパーリンクについて...
-
フォルダ内のPDFファイル名を変...
-
Excelで指定したフォルダに保存...
-
会社のネットワーク上のファイ...
-
【マクロ】ファイル名の日付に...
-
保存先のフォルダ名を指定した...
-
多量のファイルをフォルダに自...
-
パス名に2バイト文字(マルチバ...
-
ディレクトリ名変更してコピー...
-
Access VBA で フォルダ権限...
-
C ファイル出力で、フォルダが...
-
サーバ内のフォルダ名と各フォ...
-
フォルダにリンクを貼りたい
-
vbsで選択ダイアログを表示した...
おすすめ情報
反応して頂いて大変ありがたいです。すいません補足し忘れていました。自宅がMacOS環境なのでサンプルはおおよそのイメージになってしまいますがですが実際使う職場はExplorerです。画質が劣化してしまうのですね。チェックが足らず申し訳ありません。少し見易くしてみたのですがいかがでしょうか?
⓵、⓶はエクスプローラー上の表示
になります。
出来ないんですね。それが分かっただけでも1UPしました。m_ _mそれでは、上のブックのD列をそのままシート名にして、それぞれのシートに分割し、下のような1施設分のデータのみコピペしたシートへのリンクを貼って(D列に貼るかもしくは別にリンクするセルを作ってもいいです)、D2セルの「AA」をクリックしたらAAのシートに飛ぶようにするには、方法がありますでしょうか?それとも質問が変わるので新しくスレ立てた方が良いのでしょうか?作法がわからずすいません。