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も見ています
-
字面がカッコいい英単語
あなたが思う「字面がカッコいい英単語」を教えてください。
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
ユーザーフォームにワークシートを表示させる。
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カレントフォルダって?
-
Dreamweaverでイメージを挿入す...
-
会社のネットワーク上のファイ...
-
Windows10でコマンドプロンプト...
-
VBA フォルダ名に特定の文字を...
-
Excelで指定したフォルダに保存...
-
エクセルのデータをメモ帳に貼...
-
C ファイル出力で、フォルダが...
-
excelマクロ 冒頭3文字が一致す...
-
Excelのハイパーリンクについて...
-
致命的なエラー C1043について
-
DLLの暗黙リンクの調べ方
-
GetAttrが原因?
-
pythonでDepixを起動
-
レジストリの文字列から
-
条件に合うフォルダが存在する...
-
VBScriptでのフォルダ指定ダイ...
-
保存先のフォルダ名を指定した...
-
フォルダ内のファイルの作成日...
-
バッチファイルにて連番付きフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
VBA 最新のフォルダ取得
-
ファイル名と同名のフォルダを...
-
デスクトップの画像をhtmlに表...
-
Excelのハイパーリンクについて...
-
VBプロジェクトでのフォルダ構...
-
会社のネットワーク上のファイ...
-
【マクロ】ファイル名の日付に...
-
パス名に2バイト文字(マルチバ...
-
Access VBA で フォルダ権限...
-
カレントフォルダって?
-
VBA フォルダ名に特定の文字を...
-
ExcelVBAでフォルダへのハイパ...
-
C ファイル出力で、フォルダが...
-
excelマクロ 冒頭3文字が一致す...
-
保存先のフォルダ名を指定した...
-
マクロVBAのフォルダ階層別で検...
-
Excelで指定したフォルダに保存...
-
ディレクトリ名変更してコピー...
-
vbsで選択ダイアログを表示した...
おすすめ情報
反応して頂いて大変ありがたいです。すいません補足し忘れていました。自宅がMacOS環境なのでサンプルはおおよそのイメージになってしまいますがですが実際使う職場はExplorerです。画質が劣化してしまうのですね。チェックが足らず申し訳ありません。少し見易くしてみたのですがいかがでしょうか?
⓵、⓶はエクスプローラー上の表示
になります。
出来ないんですね。それが分かっただけでも1UPしました。m_ _mそれでは、上のブックのD列をそのままシート名にして、それぞれのシートに分割し、下のような1施設分のデータのみコピペしたシートへのリンクを貼って(D列に貼るかもしくは別にリンクするセルを作ってもいいです)、D2セルの「AA」をクリックしたらAAのシートに飛ぶようにするには、方法がありますでしょうか?それとも質問が変わるので新しくスレ立てた方が良いのでしょうか?作法がわからずすいません。