• ベストアンサー

マクロでのファイル名組み方

os xp ex 03 [Module1 (コード)] に入っています。 数字は必ず4桁 数字は順位ばらばら 社名が入っている時も未入力も有り。 1503住友石炭 5602栗本鉄工所   5803フジクラ 5959岡部 6976太陽誘電 9001東武鉄道 150円以下 8604野村hd  5196 5711 以上多い時は20位少ない時は1  上記を  下記の ¥0000メック  の処に組み込む方法をお願いします。 *呼び込み ChDir "C:\08-C\9\new-2" Workbooks.Open Filename:="C:\08-C\9\new-2\ 4971メック .xls", UpdateLinks:=0 End Sub  *保存 Sub new2A保存() Windows(" 4971メック .xls").Activate ActiveWorkbook.Save: ActiveWindow.Close End Sub

質問者が選んだベストアンサー

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.5

ANo.4の Workbooks.Open FileName:=mypath & fnv(i) & ".xls", UpdateLinks:=0 のところですが、 数字を取り出して+メック.xls なら Workbooks.Open FileName:=mypath & Val(fnv(i)) & "メック.xls", UpdateLinks:=0 と変更してください。 お礼をいただきましたが、質問には答えていただけないのでしょうか?

yuki-g
質問者

お礼

大変に遅くなりまして御免なさい。 08・10・19・  09:46はテストしましたが "メック.xls", を使うと次の呼び出しでメックがダブりエラー 自分のレベルは此処まで 数字の4桁だけーーー 1234 これで統一して今回はくみます。 度々ありがとうございました。

yuki-g
質問者

補足

遅くなりまして御免なさい。 ano4のテストをしていますが、 数字の4桁だけーーー 1234 数字の4桁+記号ーーー1235- 数字の4桁+記号ーーー1236太陽誘電 以上の様に3種類もあるもので困っています。 全部で200位あります、その後約1000から2000位まで増やしたいのです。 其処で数字の4桁だけで後の記号とか漢字はオマケデ付いてくる様な処理を目標 okormazdさんの secode=left(selection,4)これを組み込めないか考えています。 今現在は基本の基なのです。 後に送信させていただきます。 08・10・19・  09:46はまだテストはしていません。 これからテストをさせていただきます。

その他の回答 (4)

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.4

>>質問の意図が理解できません。そうだと思いますーー書き込みだけでも精一杯です。 最初からコードを提示して、やりたいことを説明された方が解り易くなります。 取りあえず下記のようにすればどうでしょうか。 ANo.1の補足内容を出来るだけ取り入れてみた積もりです。 実用性に乏しいマクロになっています。 fnv変数のArray関数内の""にはファイル名を記入してください。 Sub test_new2A呼込1()   Dim fnv As Variant   Dim mypath As String   Dim i As Integer   'パス名   mypath = "C:\08-C\9\new-2\"   'ファイル名を列挙   fnv = Array("4971メック", _         "5196", _         "", _         "", _         "", _         "", _         "", _         "", _         "", _         "", _         "", _         "", _         "", _         "", _         "", _         "", _         "", _         "", _         "", _         "5711三菱マテリアル")   'ループしてファイル名を変数fnvから取り出す   For i = 0 To UBound(fnv)     Workbooks.Open FileName:=mypath & fnv(i) & ".xls", UpdateLinks:=0   Next i End Sub しかし、上記のコードでは本文にある >以上多い時は20位少ない時は1 といった要件を満たすことはできません。 この要件は、どこで知ることができるのですか? ファイル名は、都度変わるのですか?

yuki-g
質問者

お礼

遅くまで取り組み有難うございました。 此れまで列記して頂きこれを元に作成します。 又の出会いの時はお願いします。

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

質問の >組み込む方法を という組み込むというのは何のこと。 >数字は必ず4桁 数字は順位ばらばら 社名が入っている時も未入力も有り。 はエクセルのシートにデータがあるのか。そんなことは最低限で、はっきり書くこと。テキストファイルですか。 それをエクセルファイルにするのか? プログラマは、正式文書で、処理仕様を書けるぐらいにならないと。

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.2

質問の意図が理解できません。 >Module1 (コード)] に入っています。 数字は必ず4桁 数字は順位ばらばら 社名が入っている時も未入力も有り Module1にそんなの書いたらerrorになるんじゃないの。 どこかのセルに書いてあって、それを選択してvbaを実行したら開くというのなら、 secode=left(selection,4) Workbooks.Open Filename:="C:\08-C\9\new-2\" & secode & "メック.xls", UpdateLinks:=0 あたりだろうが、 質問がいい加減だから、あってないかも。

yuki-g
質問者

お礼

そうですよね 質問がいい加減なら回答者は返事に困りますよね されど secode=left(selection,4)  secode ポイントを抑えた回答有難うございました。  

yuki-g
質問者

補足

okormazdさん、お世話になります。 >質問の意図が理解できません。 xlsさんににも書きましたが此処で精一杯なのです。 secode=left(selection,4)  secode このあたりは自分では理解不能の れべる です・

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

質問の意図が理解できません。 >[Module1 (コード)] に入っています。  >数字は必ず4桁 数字は順位ばらばら  >社名が入っている時も未入力も有り。 このデータはどこに書かれているのですか? [Module1 (コード)]に書かれているのですか? 数字を取り出し、ブック名とするということでしょうか? それなら、例えば下記のようにすることができます。 (例に挙げたのは、セルA1にデータがある場合です。) Workbooks.Open FileName:="C:\08-C\9\new-2\" & val(Range("A1").Value) & ".xls", UpdateLinks:=0

yuki-g
質問者

補足

xls88さん、お世話になります。 >質問の意図が理解できません。そうだと思いますーー書き込みだけでも精一杯です。 今現在は Sub new2A呼込() ChDir "C:\08-C\9\new-2" Workbooks.Open Filename:="C:\08-C\9\new-2\4971メック.xls", UpdateLinks:=0 Workbooks.Open Filename:="C:\08-C\9\new-2\5196.xls", UpdateLinks:=0 - -約1から20位この様に書き込んであります。 - Workbooks.Open Filename:="C:\08-C\9\new-2\5711三菱マテリアル.xls", UpdateLinks:=0 End Sub >数字を取り出し、ブック名とするということでしょうか? ブック名より呼び出しする様な方法ですとFor to Next文が更に難易になると思い回答者の方に負担がかかると結うことです。 >[Module1 (コード)] の処に 例えば a1=4971メック a2=5196 の様に処理をしてもらえればと思っていました。 別ブックまで面倒を見ていただければ幸いと思います。 只どちらにしても " & val(Range("A1").Value) & " 4971メックと5196に対して共用は効きませんよね?

関連するQ&A