- ベストアンサー
作成した順番に番号をふる
見積書を見積書のテンプレートを素に作成していくとします。見積書の例えば、A1セルに、保存すると、例えば1、2、3・・・という感じで、作った順番に自動で番号がでるように(ふられるように)したいのです。何か方法はありますでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず、保存データの数を取得して番号を入れる処理を下記のような内容で 考えてみました。 標準モジュール用です。 なお、Visual Basic Editor の [ツール] メニューにある [参照設定] の中から Microsoft Scripting Runtime を選択しておく必要があります。 Const FPath = "C:\MyDoc\ExData\Mitsumori" Sub Auto_Open() Dim Fso As New FileSystemObject Range("A1") = Fso.GetFolder(FPath).Files.Count + 1 ' Application.VBE.ActiveVBProject.VBComponents.Remove _ Application.VBE.ActiveVBProject.VBComponents("Module1") End Sub ※"Module1" の部分は、実際のものに置き換えます。 ※見積書のテンプレートにこれを記述して保存し、読み込み専用にしておきます。 ※作成したファイルだけを保存する専用フォルダを作成しておきます。 ・上例では C:\MyDoc\ExData\Mitsumori ※テンプレートを読み込んだ時点で「専用フォルダのファイル数+1」がA1に 書き込まれ、マクロは削除されます。(再読み込み時の加算防止) しかし、いったん保存した後に不要になって削除したファイルがあると、番号が 重複してしまう可能性があります。 保存ファイルすべてのA1セルの最大値をチェックして採番する方法がベターな のでしょうが、ファイル数が多くなると、ファイルの開閉で処理が長くなってし まうでしょうね。
その他の回答 (1)
- misatoanna
- ベストアンサー率58% (528/896)
> 見積書の例えばA1セルに 1、2、3・・・という感じで保存 作成した番号をセルに入力したいという理由は何なのでしょう。 セルに番号を入れて保存しても、そのブックを開いてみないと順番がわかりま せんよね。 ブック名に番号を入れたほうがわかりやすいのではないでしょうか。 作成後に内容を変更しないという前提でしたら、ファイルの作成日付=作成順 ですので、リネームソフトを使えば対応できると思うのですが。
補足
作ったもの(例えばで書きましたが、見積書)を印刷する必要があるからです。なので、ブックに番号がついていても、その作ったもの事態のある部分に、番号がでないとちょっと意味がありません・・・。自分で、これは何番目に作ったものだと、確認して、自分でセルに打って、保存すればいいのですが、もし自動で、保存したらそのセルに番号がでるように、関数か、マクロ・・を使えば、出来るものか知りたいと思いました。 説明不足でした・・。すみません。
お礼
とても丁寧に書き込んで下さってありがとうございます。早速やってみます。