Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8768 / 13646 ツリー ←次へ | 前へ→

【21673】自動連番について saki55 05/1/26(水) 12:22 質問[未読]
【21674】Re:自動連番について Jaka 05/1/26(水) 12:29 発言[未読]
【21675】Re:自動連番について saki55 05/1/26(水) 12:38 お礼[未読]
【21678】Re:自動連番について Jaka 05/1/26(水) 14:03 発言[未読]
【21682】Re:自動連番について saki55 05/1/26(水) 17:47 質問[未読]
【21694】Re:自動連番について Jaka 05/1/27(木) 9:02 発言[未読]
【21702】Re:自動連番について saki55 05/1/27(木) 16:42 発言[未読]
【21704】Re:自動連番について saki55 05/1/27(木) 17:31 質問[未読]
【21754】Re:自動連番について Jaka 05/1/28(金) 14:41 回答[未読]
【21828】Re:自動連番について saki55 05/2/1(火) 12:06 お礼[未読]
【31322】いまごろ Jaka 05/11/17(木) 13:33 発言[未読]

【21673】自動連番について
質問  saki55  - 05/1/26(水) 12:22 -

引用なし
パスワード
   エクセルで作った見積書式をテンプレート(xlt)として使用しています。
見積書式なので案件毎に作番をふっています。
現在提出用、ファイル用2部をプリントしファイルした見積作番を確認してから手入力でヘッダー右に入力しています。
昨今紙の経費も侮れなく、出来れば提出用のみプリントし本文はHDD上に残したく考えております。
質問は「このテンプレートを開く毎に自動的に連番を作成出来ないか」をお教え頂ければ幸いです。
連番と言っても複雑なモノではなく「Aさんが2005年1月に作成した通算48枚目の見積書ではA0501048」の様なモノで良いのですが如何なものでしょうか。
ACCESS等使わずExcel2000でお願いしたく宜しくお願いします。

【21674】Re:自動連番について
発言  Jaka  - 05/1/26(水) 12:29 -

引用なし
パスワード
   こんにちは。

▼saki55 さん:
>質問は「このテンプレートを開く毎に自動的に連番を作成出来ないか」をお教え頂ければ幸いです。
単純な連番ならできますけど

>「Aさんが2005年1月に作成した通算48枚目の見積書ではA0501048」の様なモノで良いのですが如何なものでしょうか。
このAさんの通算何枚目とかはどうやって判断するのでしょうか?

【21675】Re:自動連番について
お礼  saki55  - 05/1/26(水) 12:38 -

引用なし
パスワード
   ご連絡ありがとうございます。
通算枚数はExcelのそのテンプレートの起動回数で考えいたのですが如何でしょうか。
1回目なら001、48回目で048のように。

【21678】Re:自動連番について
発言  Jaka  - 05/1/26(水) 14:03 -

引用なし
パスワード
   聞き忘れていた事があるんですけど...。
マクロで処理するって事は、新規に作った見積書にも同じマクロがくっついていくという事なんですけど、それでも良いんですか?
マクロを消そうと思えば消せるんですけどね....。

テンプレートの使用に関しては、マクロで開いてマクロで保存するのと、手動で開いてマクロで保存するとではこんなに違うのかと思ってもいませんでした。(マクロで開いてマクロで保存の方しかやった事が無かった。)

この違いは、他サイトでbykinさんが書いたテンプレートの保存先調べるコードを利用させてもらえば、何とかなるかなと思っていたんですが、そう簡単には行かないみたいです。
それで、普通のファイルを別名保存ではダメでしょうか?
また、どちらにしても一回開いただけでカウントするから、これも不便ではないかと思います。

どっちにしろ、そのままだとマクロがついていってしまうんですけどね。

【21682】Re:自動連番について
質問  saki55  - 05/1/26(水) 17:47 -

引用なし
パスワード
   遅くなりました。
はい、現在はテンプレートから使用し、xltに書込んだファイルをxlsワークシートで保存しています。
仰る様に“マクロ”が金魚のフン状態で繋がっていくのは美しくないですね。
それではpdfで保存していくというのはどうでしょう?
xltに書込んだ書面をpdfで“印刷”した時に作番されたモノが載っていてくれる。
xlsとしては保存しない。
如何でしょうか?

【21694】Re:自動連番について
発言  Jaka  - 05/1/27(木) 9:02 -

引用なし
パスワード
   おはようございます。

すみません。
なんかめっちゃくちゃに勘違いしていたようです。
昨日、家でテンプレート形式を前提でぐちゃぐちゃと色々考えたら、なんか複雑になりすぎてしまって...。
テンプレート自身にカウンタを設けるのは容易でないと言うことになりました。

結局、普通のブックをテンプレートの変わりとして、ベースブックのシートを複製した方が簡単なので、そっちにしました。
見積書と言うことなので軽そうだし。
見積書ってシート1枚だけですよね?
シートモジュールにマクロが書いていなければ、削除とか必要も無いし...。
これじゃダメですか?

標準のジュール

Sub Auto_Open()
  Application.ScreenUpdating = False
  With ThisWorkbook
    'With .Sheets(2)  'シート1枚だけならここから(2枚と仮定)
    '  .Copy
    'End With     'ここまでいらない。
    With .Sheets(1)
      With .Range("A1")
         .NumberFormatLocal = "000"
         .Value = .Value + 1
      End With
      .Copy  'シート1枚だけならこっちを使用
      '.Copy Before:=ActiveWorkbook.Sheets(1)
    End With
    DoEvents
    .Close (True)
  End With
  Application.ScreenUpdating = True
End Sub

【21702】Re:自動連番について
発言  saki55  - 05/1/27(木) 16:42 -

引用なし
パスワード
   jakaさん、お疲れ様です。
戻ったばかりなのでまだスクリプトを試していませんので早速あてがってみようと思います。
因みにご指摘のページ数は1葉でOKです。
では後ほど
それにしてもここでのJAKAさんって凄いですね(謝
今後とも宜しくお願いします。

【21704】Re:自動連番について
質問  saki55  - 05/1/27(木) 17:31 -

引用なし
パスワード
   jakaさん、
下記←部の様には出来ませんでしょうか?
また、A1に入力される数値をヘッダー“RightHeader”に挿入したいです。

Sub Auto_Open()
  Application.ScreenUpdating = False
  With ThisWorkbook
        With .Sheets(1)
      With .Range("A1")←RightHeader内へ
         .NumberFormatLocal = "000"←この三桁の整数前にYEAR関数やMONTH関数で年月を入れられませんか?ex)0501(2005年1月)0502(2005年2月)で“000”ぶ併せて整数7桁に出来ませんでしょうか?
         .Value = .Value + 1
      End With
      .Copy  'シート1枚だけならこっちを使用
      '.Copy Before:=ActiveWorkbook.Sheets(1)
    End With
    DoEvents
    .Close (True)
  End With
  Application.ScreenUpdating = True
End Sub

【21754】Re:自動連番について
回答  Jaka  - 05/1/28(金) 14:41 -

引用なし
パスワード
   >また、A1に入力される数値をヘッダー“RightHeader”に挿入したいです。
これは、マクロ記録をしてもらいたかったです。

  Dim PYr As String, PMt As String, kyo As Date, PNo As String
  Application.ScreenUpdating = False
  With ThisWorkbook
    With .Sheets(1)
      kyo = Now()
      PYr = Format(kyo, "yy")
      PMt = Format(kyo, "mm")
      With .Range("A1")
         If .Value <> "" Then
          PNo = Format(Right(.Value, 3) + 1, "000")
         Else
          PNo = Format(1, "000")
         End If
         .NumberFormatLocal = "@" '何となく文字列に変えました。
         .Value = PYr & PMt & PNo
      End With
      .PageSetup.RightHeader = PYr & PMt & PNo
      .Copy
    End With
    DoEvents
    .Close (True)
  End With
  Application.ScreenUpdating = True

【21828】Re:自動連番について
お礼  saki55  - 05/2/1(火) 12:06 -

引用なし
パスワード
   Jaka さん
連絡遅くなりました。
番号に多少手を加え何とかなりました。
ありがとうございました。

【31322】いまごろ
発言  Jaka  - 05/11/17(木) 13:33 -

引用なし
パスワード
   >他サイトでbykinさんが書いた
    ↓
ぱげさんでした。
ぱげさん、ごめんなさい。


8768 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free