エクセル2010VBAでの諸費用管理についての質問

このQ&Aのポイント
  • エクセル2010VBAで町内の諸費用を管理する方法について質問です。
  • 質問内容は、年度ごとのデータ引き継ぎや連続印刷VBAの機能についてです。
  • また、ファイル内のリンクについても質問しています。
回答を見る
  • ベストアンサー

エクセル2010VBA での質問です。

VBAはやったことないので全く初心者です。 町内の諸費用をエクセルで管理しています。 年度が変わる度、当番も変わってデータを引き継いで管理するのですが、最初に連続印刷のVBAを作ってくれた人がもういないので、今まで、前年度のものをコピーし、中のデータを書き換えて使っていたようなのですが・・・ どのような設定がされているか把握するために質問させて頂きます。 エクセルを開き、マクロで作ってある印刷ボタン?を押すと、Sheet1にあるデータベース約100人分 (B列に100人分の名前・2行目にいくつかの項目・各項目の下に金額)が別のSheetにある個人請求書に連続印刷されるというものですが、添付していますVBAの内容を把握したい事が一つ目です。 年度が変わるごとにそのシートをコピーして中のデータを書き換えて使っているのですが、問題は有りますでしょうか?(二つ目です) 添付しております、ファイルのVBAを自分はわからないのですが、このBOOKを開いた時に ”このブックには、ほかのデータソースへのリンクが含まれています。 ・リンクを更新するとエクセルは最新のデータを取り込もうとします。 ・リンクを更新しないと、以前の情報が使用されます。 注意:データリンクは許可なく機密情報にアクセスして共有するのに使用される可能性があります。また、その他の問題を起こす可能性のある操作に使用される場合があります。このブックの作成元が信頼できない場合にはリンクを更新しないでください。   更新する・更新しない・ヘルプ ” というメッセージが出てきますが、このBOOKが入っているフォルダ以外のデータも参照されているのでしょうか?(三つ目) 情報が少なくて済みません。 宜しくお願い致します。

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

  • ベストアンサー
  • aoyama984
  • ベストアンサー率45% (253/561)
回答No.3

'説明用に注釈をつけました Sub 徴収票印刷() '----- 注意事項の表示 MsgBox "●確認1 貼付徴収原簿は関数はいってないですか?" _ & vbcrf & "(値のみとする事)" _ & vbcrlf _ & vbcrlf & "●確認2 諸費徴収票の徴収日・徴収時間は正しいですか?" _ & vbcrlf _ & vbcrlf & "●確認3 区長名は正しくなってますか?" '----- どこから どこまで i = InputBox("開始番号はどこからですか ?") n = InputBox("終了番号はどこまでですか ?") '----- 先頭の2行は使用しない i = i + 2 n = n + 3 '----- 貼付徴収原簿シートを表示 (必ずこのシートからスタートなら不要) Sheets("貼付徴収原簿").Select With Sheets("諸費徴収票") '----- B7に名前をコピーして印刷を繰り返す '----- Do-Loopのあいだを条件が合わなくなるまで繰り返す Do While i <= n '----- K列が1以下ならやらない If Range("K" & i).Value > 1 Then '----- 名前のコピー .Range("B7").Value = Range("B" & i).Value '----- 諸費徴収票の印刷 .PrintOut copies:=1 End If i = i + 1 Loop '----- 名前を消して終了 .Range("B7").Value = "" End With MsgBox "諸費徴収票を印刷しました" End Sub

shogotin0522
質問者

お礼

有難うございます。 自分なりに調べてみたいと思います。

その他の回答 (2)

回答No.2

おそらくシートのどこかのセルに「=filename.xls\sheet!~」のように書かれてあり、他ファイルの値を参照しているのだと思います。エクセルのメニューに「リンク」の項目がある筈です。それを辿ればリンク先ファイル名が分かります。不要なら解除も出来ます。ただし、解除するとリンク先ファイル名が消えてしまうので、念の為に名前くらいは控えておくといいでしょう。 印刷自体は、現在のデータベースを基本に変更があったら修正する今の方法でいいのかと思います。不都合なければいいのです。懸念事項があるのでしょうか? VBAのソースコードは写真で判別出来ません。 ここにコピペしてはどうでしょうか?

shogotin0522
質問者

補足

入力されているデータです。 Sub 徴収票印刷() Dim i As Integer Dim n As Integer MsgBox "貼付徴収原簿は関数はいってないですね確認して下さい(値のみとする事) ?" MsgBox "諸費徴収票の徴収日・徴収時間は正しいですか ?" MsgBox "区長名は正しくなってますか ?" i = InputBox("開始番号はどこからですか ?") n = InputBox("終了番号はどこまでですか ?") i = i + 2 n = n + 3 Do While i <= n If Sheets("貼付徴収原簿").Range("k" & i) > 1 Then Sheets("諸費徴収票").Range("b7") = Sheets("貼付徴収原簿").Range("b" & i).Value Sheets("諸費徴収票").Select ActiveWindow.SelectedSheets.PrintOut copies:=1 End If i = i + 1 Loop Sheets("諸費徴収票").Range("b7") = "" Sheets("貼付徴収原簿").Select MsgBox "諸費徴収票の印刷は終了しましたプリントが終了しました" End Sub

  • aoyama984
  • ベストアンサー率45% (253/561)
回答No.1

その1 VBAの中身ですが 画像が小さくてわかりません 画像をどこかにUPして URLを教えてください 基本は Sheet1のB列を上から順番に処理する 別シートに必要事項を転記して印刷というものだと思いますが どういうことが知りたいのでしょうか その2 コピーして使用していいのかは 正しく使えるなら問題無いのでは その3 リンクの更新 についてはVBAとは関係ありません 参照しているものがある ということなので この参照が必要なのでしょうか 最新データでなくてもいいものなのでしょうか 参照が必要ないなら 解除してしまえば今後は出なくなります 必要なら 毎回最新データにする必要があります 必要性は 実物を見ないと何ともいえません

shogotin0522
質問者

補足

入力されているデータです。 Sub 徴収票印刷() Dim i As Integer Dim n As Integer MsgBox "貼付徴収原簿は関数はいってないですね確認して下さい(値のみとする事) ?" MsgBox "諸費徴収票の徴収日・徴収時間は正しいですか ?" MsgBox "区長名は正しくなってますか ?" i = InputBox("開始番号はどこからですか ?") n = InputBox("終了番号はどこまでですか ?") i = i + 2 n = n + 3 Do While i <= n If Sheets("貼付徴収原簿").Range("k" & i) > 1 Then Sheets("諸費徴収票").Range("b7") = Sheets("貼付徴収原簿").Range("b" & i).Value Sheets("諸費徴収票").Select ActiveWindow.SelectedSheets.PrintOut copies:=1 End If i = i + 1 Loop Sheets("諸費徴収票").Range("b7") = "" Sheets("貼付徴収原簿").Select MsgBox "諸費徴収票の印刷は終了しましたプリントが終了しました" End Sub

関連するQ&A

  • エクセルの素朴な疑問

    シート1にデータ入力をし、シート2・シート3シート4に入力データを多くリンクさせると、ブックを開く時間が長くなったり、データ入力時にカーソルの動きがが遅くなります。何かいい方法を教えてください。(VBAを使った方法でもいいです) 現在の状況 ・データのリンク(=A12等で処理) ・データをリンクさせ関数も多く使用している ・印刷処理として、VBAを使用している ・エクセル2002を使用

  • エクセル内でのVBAの質問です。

    閲覧ありがとうございます。 エクセルの作業ファイルにてVBAのコードを作成しているのですが、中々思う通りに実行できないので、ご教授願います。 実行したい内容については以下の通りです。 ボタン1を押すと(添付画像上段のブック)、マイドキュメント内にある「データ転送ソフト2」という名前のブックを開き、そのブックのシート「A」内(添付画像下段)の、ボタン1を押したシートのF1セル(添付画像上段のブック)と同じ文字(日付)の列と"う"と入力された行の交差したセルの数値(添付画像下段の紫色のセル)をコピーして、ボタン1を押したシートのT4のセル(転送値1:の右隣にある薄緑のセル)に貼り付ける作業が行えるコードをご教授願いたいです。 要約しますと、作業しているシートのボタン1を押すと、別の場所にあるブックを開き、そのシート内の条件に沿った数値をコピーして、作業しているシートの指定されたセルに貼り付ける作業が行いたいです。 とても分かりにくい文章で申し訳ございませんが、お願いします。 可能ならば、コードの解説もつけてくださると嬉しいです。

  • excel vba

    テーブル情報に基づきシートをコピーするVBAマクロを記述したい。 ExcelのBook111のSheet1に次のような データが入っています。 (1、2)セルにn=3という数字が入っているものとします。 その数値に合わせて、この場合は3なので Sub Sample01() Workbooks("Book3.xls").Worksheets("booksheet3").Copy After:=Workbooks("Book111.xls").Sheet(1) End Sub のようなつまり、booksheet3なるシートをBook111(固定なBOOK)にコピーしようとしています。 このようなことをVBAで書くにはどうすればいいのでしょうか。 ただしBook名とシート名はあくまでデータの値にもとづいたデータをもってくることになります。 要するに間接参照したデータに基づき処理するのをどのように記述するかという質問です。 A列 B列 1 回数 n=3 2     3     4 Book1.xls book1sheet ←n=1 5 Book2.xls book2sheet ←n=2 6 Book3.xls book3sheet ←n=3 7 Book4.xls book4sheet 8 Book5.xls book5sheet 9 Book6.xls book6sheet ←n=6 10 Abc,xls Defsheet ←n=7

  • Vbaでアクセスからエクセルにリンクテーブルする

    Vbaでアクセスからエクセルにリンクテーブルするには? エクセルの情報: C:\Users\Desktop¥新規 Microsoft Excel ワークシート.xlsx シート1の情報: フィールド1 フィールド2 あああ    aaa いい     iii ううう    uuu なのですが、 アクセスからVBAでリンクするにはどうすれば良いでしょう? 手作業なら 外部データ→エクセル→外部データの取り込み→リンクテーブルを作成してソースデータにリンクする でリンクできますが、vbaで行いたいです。 Sub Sample01() Dim db As DAO.Database, tb As DAO.TableDef Set db = CurrentDb Set tb = db.TableDefs("Sheet1") tb.Connect = ";DATABASE=" & CurrentProject.FullName & ";TABLE=Sheet1" tb.RefreshLink ' リンク情報の更新 End Sub このコードは意味が違いますよね エクセルのパスとシート名を指定してリンクする方法を教えてください。 最終定期にはシートをループして複数のテーブルを作成したいのです。 リンクが無理ならインポートでもOKです。

  • エクセルVBAについての質問です。

    エクセルVBAについての質問です。まったくの初心者です。 閉じたままの他のブックBのSheet1 C7セルからデータを取得して作業中のブックA Sheet1 H7セルに記入したいのです。 どうかご指導お願いいたします。 まったくの初心者で、本やネットを漁っているのですが、何日かかってもできません。センスないんだと思いますが、あきらめきれずの質問です。アドバイスいただけると幸いです。

  • PDFとエクセルシートの連続印刷について

    PDFと、指定したエクセルシートの連続印刷について教えてください。 エクセルVBAを利用して、PDFとエクセルファイル(シート名指定あり)の混載するリストを参照し、 連続印刷する方法を教えてください。 添付した図のようなリストを作成し、 E:\test\111.pdf E:\test\222.pdf E:\test\222.pdf E:\test\Book1.xlsのSheet1 ・ ・ ・ と印刷させるには、どのように書けばよろしいでしょうか? A列に「判別」としたのは、PDFかエクセルかを見分けるのに必要かなと思って設けました。 リストはイメージなので、必要な情報などあれば作成しなおします。 あと、もし可能であれば、E列の印刷フラグが1であれば印刷、 0であれば印刷しないでスキップという機能が欲しいです。 ややこしくなるなら、この機能は我慢します。 全てのファイルをPDFにしてしまえば良いのですが、 それは理由があってできないのです。 VBA初心者で、エクセル2010を使用しています。 どなたかご存じでしたら、ぜひお教え下さい。 よろしくお願いします。

  • excelでのVBAの組み方について???

    EXCELでVBAを使ってシートを作成しようと考えています。ワークシートを大量に増やす方法と、別のシートを作成し、互いにリンクをかける方法では、どちらが、使用上、また、データ量的によろしいのでしょうか。ちなみに、一つのファイルに大量のシートで組み込んだ場合、データ量が大量になるかと思いますが、ファイルを開く時など、時間的にどうなのかなと思いまして・・・。教えてください。

  • エクセルVBAで、テキストボックスにセルの値を入れる

    宜しくお願いします。 エクセルデータの各項目を、すでに書式(表)が印刷された用紙のそれぞれの項目の位置に印刷させたいのですが・・・ 各項目には、500行ぐらいのデータがあり、別のワークシートの表示させたい位置(すでに印刷された用紙にあわせてある)に各項目ごとのテキストボックスを作っておいて、そのテキストボックスに各項目のデータを1行ごとに表示させて、テキストボックスのフォント調整、印刷 ~を繰り返したいのですが、どのようなコードを書けばよいのでしょうか? 進め方としては、データシートからテキストボックスに各項目のデータが表示されたら、シート上でテキストボックスのフォントや位置の微調整が出来るようにしておいて、印刷ボタンをクリックすると印刷され、次へのボタンをクリックすると、次の行のデータがテキストボックスに表示されるようにしたい。 ※印刷する場合は、テキストボックス内の文字のみ印刷(シートには印刷したくない文字書きたいので・・・) また、そのフォームには、パターンが5つあって、データには1行ごとにパターン番号が入力されているとして、それぞれのパターンにあわせたテキストボックスの配置してあるシートへ行くようにもしたい。 データの入れ替わりが多いので、別のワークブックと繋がるような仕組みにしておいて、テキストボックスの配置してあるブック側から、データのあるブックを呼びに行ってデータを取りに行くようにしておきたい。 以上、条件が多くてすみませんが、VBAは初心者で、ほんの部分的にしかまだ分かりません。どなたか詳しい方宜しくお願いします。

  • エクセルVBAの構文を教えてください。

    こんばんは。マクロ初心者です。 VBAの構文を教えてください。 ■シート(1)には項目が50ある5年分(60ヶ月)の市場統計データーがあります。50個ある項目名はB列にありDセル2008年1月からBKセル2012年12月まで横に60ヶ月分のデーターを入力しています。 ■シート(2)には50の項目名のデータがあります。項目名はB列にあります。 ■シート(3)にはコンボボックスを作成し、コンボボックスの下に表を作成しました。 シート(3)のコンボボックスの50ある項目から▼ボタンで項目を選びコマンドボタンを押すと シート(3)の下記のセル範囲でシート(1)のデーターを参照させたいのです。 B8セルからM8セルまで(2008年度12か月分のデータ) B11セルからM11セルまで(2009年度12か月分のデータ) B14セルからM14セルまで(2010年度12か月分のデータ) B17セルからM17セルまで(2011年度12か月分のデータ) B20セルからM20セルまで(2012年度12か月分のデータ) コンボボックスは設定できたのですが、構文がうまくできないため参照できていません。 エクセルVBAに詳しい方、どうぞご教授ください。よろしくお願い致します。

  • Excel VBAで印刷ジョブを一つにしたい

    Excel VBAを使用して、シートAの元データの表の一行目から、 決められたセルに5レコードずつ読み込んで表示させる AccessのレポートようなシートBを作りました。 シートAには約500レコードあり、 シートBのページ数は約100ページ分になります。 このシートBの100ページを一度に印刷したく マクロを組み、ページを変えながらPrintOutメソッドで 印刷をしてみましたが、 プリンタのジョブが多くなりすぎて困っています。 Excelのみで、別のブックを使わずに解決する方法を探しています。 何か良い方法はないでしょうか。 よろしくお願いします。

専門家に質問してみよう