[[20150429220916]] 『絶対パスからブック名の記述方法』(三輪車) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『絶対パスからブック名の記述方法』(三輪車)

開いているブックを別名で保存。変数によりセル H2の文字列をブック名にします。

絶対パスから記述しているのですが、指定フォルダにできたブックの名前は

変数そのもので、" wkbnm "となってしまう。

下記の "C:\ Users  以下のコードはどのように直せばよいでしょうか。

Sub 別名で保存()

Dim wkbnm As String

  wkbnm = Range("H2").Value

  ActiveWorkbook.SaveAs "C: \ Users \ 三輪車 \ Documents \ VBA \ wkbnm"

End Sub

< 使用 Excel:Excel2007、使用 OS:Windows8 >


 ...\VBA\wkbnm"
 を
 ...\VBA\" & wkbnm
 に。

(Mook) 2015/04/29(水) 22:12


Mook様

秒速の回答、ありがとうございました。

希望通り、H2セルの文字列を用いてブック名を変更できました。

(三輪車) 2015/04/29(水) 22:21


下記のように直し指定フォルダに別名で保存でき喜んでいました。
ところがよく考えてみると、このコードはわたしのパソコンの
特定のフォルダにしか保存できない。
ほかの人のパソコンではブックが保存できず、エラーになるだろうと思います。

ActiveWorkbook.SaveAs "C:\Users\三輪車\Documents\VBA\" & wkbnm

VBAが幼稚園レベルから抜け出せず、そこまで頭が回りませんでした。
下手な考え休むに似たり。無い知恵を絞ってようやく思いついたのですが、
絶対パスから、拡張子の付いたファイル名を引く(マイナス)、
次のようなコードは果たしてあり得るでしょうか?

もし変数 flnm から olnm を引くということができるなら、nenm = 以下は
どのように記述すればよいでしょうか。
  
Sub 別名で保存()

Dim flnm As String
Dim olnm As String
Dim nenm As String
Dim wkbnm As String

  flnm = ActiveWorkbook.FullName
  olnm = ActiveWorkbook.Name
  nenm =   ’ 絶対パス(flnm)から 、拡張子の付いたファイル名(olnm) を引く
  wkbnm = Range("H2").Value

ActiveWorkbook.SaveAs nenm & wkbnm

End Sub

(三輪車) 2015/04/30(木) 05:58


 通常現在開いているファイルのフォルダ位置は
 ActiveWorkbook.Path
 で取得できます。

 ですから、
  ActiveWorkbook.SaveAs ActiveWorkbook.Path & "\" & wkbnm 
 ということが目的になるでしょうか?

 蛇足ですが、マクロがあるファイルが処理するファイルであるなら ActiveWorkbook より
 ThisWorkbook の方が紛れがないかと思います。

(Mook) 2015/04/30(木) 07:27


Mook様 

再びありがとうございました。ご教示通りのコードにより一発でうまくいきました。

ActiveWorkbook.Path が定番のコードなら、わたしの質問は恥ずかしいレベル
の幼稚なものでした。これでもネットで検索しながら試行錯誤しているのですが、
なかなかピッタリするものに行きつかない。

そして、こちらの回答者の方に呆れるような質問をしてお手間を取らせてしまいます。
ネット検索のレベルも未熟、自分でも情けなくなってしまいます。

マクロ付きファイルは、ActiveWorkbookよりThisWorkbookにする方が紛れがない
というアドバイスは、どこにも書かれていないので参考になりました。

Sub 別名で保存()

 Dim wkbnm As String

    wkbnm = Range("H2").Value

   ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & wkbnm

 End Sub

(三輪車) 2015/04/30(木) 09:06


 「ブックのフルパス VBA」で検索して

http://www.k1simplify.com/vba/tipsleaf/leaf233.html

 ここに

 >    '実行中のマクロが記述されているブックのフォルダへの絶対パス
 >   Thisbook_path = ThisWorkbook.Path

 ってありますよ!!

 検索方法そのものに問題ありませんか?

 検索方法のアドバイス
http://matome.naver.jp/odai/2138961863116172301
http://excwlvba.blogspot.jp/

 用語を覚えることも、検索制度をあげる重要なファクターになりますので
 用語そのものを覚えたほうがいいですよ。

(稲葉) 2015/04/30(木) 09:18


稲葉様

わかりやすい用語説明のサイトを紹介いただきありがとうございます。

これまで思いついたことを行き当たりばったりで検索し、系統立てて

学んでこなかったことを反省しております。

不明な点や疑問があったら、真っ先にこちらのサイトを参考にします。

また用語そのものも覚えるよう努力していきます。

(三輪車) 2015/04/30(木) 09:46


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.