C:\Documents and Settings内の個人毎のフォルダにファイルを保存したいのですがどうしてもうまくいきません。
どなたかわかる方、お力を貸していただけないでしょうか?
Dim ユーザー名1 As String
Dim ユーザー名2 As String
ユーザー名1 = Application.UserLibraryPath ’ユーザー名格納
ユーザー名2 = Mid(ユーザー名1, 27, 8) ’ユーザー名切出
ChDir "C:\Documents and Settings\ユーザー名2\適当なフォルダ名"
ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\ユーザー名2\適当なフォルダ名r\適当なファイル名.xls", FileFormat:= _
xlNormal
(変数:ユーザー名2)にうまく代入されない状態です。
変数の宣言がまずいのでしょうか???
初心者丸出しの書き方で恐縮ですが、どうかお願いいたします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
> Mid(ユーザー名1, 27, 8)
と固定して大丈夫ですか?
Application.UserLibraryPathを\で分解して、2階層目がユーザ名、という理解で正解でしょうか?
Dim ユーザー名1 As String
Dim ユーザー名2 As String
Dim strArrey() As String
ユーザー名1 = Application.UserLibraryPath ’ユーザー名格納
strArrey()=Split(ユーザー名1, "\")
ユーザー名2 = strArrey(2) ’ユーザー名切出
ご回答ありがとうございます。
アドバイスいただいた内容でも解決できました。
VBAにはいろいろな書き方があることがわかり非常に参考になりました。
アドバイスいただいた方々に一歩でも近づけるようにがんばりたいと思います。
本当にありがとうございました。
No.3
- 回答日時:
基本的すぎて、もしお気を悪くされたらすみません。
ChDir "C:\Documents and Settings\ユーザー名2\適当なフォルダ名"
ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\ユーザー名2\適当なフォルダ名r\適当なファイル名.xls", FileFormat:= _
xlNormal
に出てくる「ユーザー名2」って変数ですよね?
もしかして、
ChDir "C:\Documents and Settings\" & ユーザー名2 & "\適当なフォルダ名"
ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\" & ユーザー名2 & "\適当なフォルダ名r\適当なファイル名.xls", FileFormat:= _
xlNormal
とすれば通る…なんてオチでは?
文字列中に直接変数名を埋め込んでもその部分が勝手に入れ替わったりはしないので、
【変数より前の文字列】,【変数】,【変数より後の文字列】をそれぞれ明示的に結合する必要があります。
とりあえずご参考まで。
ご指摘ありがとうございます。
解決しました。
変数に関して、スペースや&を書く必要があるということすらわかっていませんでした。
大変参考になりました。
本当にありがとうございました。
No.2
- 回答日時:
>適当なフォルダ名r\
のrは何?ミスタイプ?
msgboxで(またはCells(1,1)に代入して)"C:\Documents and Settings\ユーザー名2\適当なフォルダ名r\適当なファイル名.xls",
を表示して、じっくりとチェックしてみては?
回答ありがとうございます。
>適当なフォルダ名r\
のrはサイトへの書き込みミスで、マクロには書いておりません。
ご指摘の通り、Midで切り出したユーザー名(文字列数8)と、実際のユーザー名(文字列数8)をMsgBox等でじっくり見たのですが、完全に同一の文字列でした。
社内の不特定多数の人間が使用するファイルを作成しておりまして、どうしてもユーザー名を変数に代入したいんですが・・・。
やはりマクロは難しいですね。
No.1
- 回答日時:
簡単に言うと、ログオンしたユーザーとは別のユーザーのフォルダに
入り込みたいと言う事でしょうか?
(その場合、権限についてはちょっと無知っぽい私ですけど)
あ、そこまで大それたシロモノではありません。
変な質問の仕方でスイマセンでした。
私の部署の個人PCに、ユーザー名以外は誰にでも
C:\Documents and Settings\ユーザー名2\会計システムのフォルダ名(会計システムのフォルダ名は全員同じです)
要は、ユーザー名以外は完全にフォルダパスが同様のフォルダが存在しております。
そして、部署の人間が質問のマクロ搭載のファイルを使って、そのフォルダに自動で保存するマクロを書きたかったのです。
もちろん手書きで個人毎のユーザー名をマクロに書き込めば作動しますが・・・。
もしわかるようであればご回答いただければと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- グループウェア Outlookのpstファイルが勝手に消える 1 2023/06/12 09:51
- Word(ワード) office 2021へ自分用のクイックアクセスとマクロをコピーしたい 2 2023/03/11 21:15
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
- その他(IT・Webサービス) onedrive解除後 1 2023/07/12 18:37
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Java jdk17.06のインストーラーが起動しない 1 2023/03/27 21:58
- Android(アンドロイド) スマホの「設定」を開いた一番上のユーザー名がいつのまにか変わってしまい、元のユーザー名にしようと入力 2 2023/02/02 22:17
- iPhone(アイフォーン) iTunesでのiphoneのバックアップについて Cドライブからユーザー→ユーザー名→Apple→ 1 2023/05/04 22:25
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
ファイル名と同名のフォルダを...
-
EXPLORERで開いているフォルダ...
-
C ファイル出力で、フォルダが...
-
ファイル名から該当フォルダへ移動
-
VBA:特定の文字を含むフォルダ...
-
多量のファイルをフォルダに自...
-
サーバ内のフォルダ名と各フォ...
-
条件に合うフォルダが存在する...
-
パス名に2バイト文字(マルチバ...
-
カレントフォルダって?
-
Excel VBA 同じ名前のフォルダ...
-
フォームを最前面に表示したい...
-
フォルダ配下のファイル作成日...
-
Hitachi Embedded Workshop (HE...
-
vbsで選択ダイアログを表示した...
-
VS2005で"定義へ移動"ができません
-
VBA フォルダ名に特定の文字を...
-
バッチファイルで指定フォルダ...
-
フォルダ内のPDFファイル名を変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
パス名に2バイト文字(マルチバ...
-
ファイル名と同名のフォルダを...
-
VBA 最新のフォルダ取得
-
Excelのハイパーリンクについて...
-
デスクトップの画像をhtmlに表...
-
ディレクトリ名変更してコピー...
-
VBA フォルダ名に特定の文字を...
-
バッチファイルで指定フォルダ...
-
フォルダ内のPDFファイル名を変...
-
Access VBA で フォルダ権限...
-
excelマクロ 冒頭3文字が一致す...
-
【マクロ】ファイル名の日付に...
-
フォルダにリンクを貼りたい
-
会社のネットワーク上のファイ...
-
多量のファイルをフォルダに自...
-
C ファイル出力で、フォルダが...
-
保存先のフォルダ名を指定した...
-
vbsで選択ダイアログを表示した...
-
Excel VBA 同じ名前のフォルダ...
おすすめ情報