• 締切済み

ワ-クシ-トにエクセルブックを開いた回数を表示する

お世話になります。 ウィンドウズXP エクセル2007を使用しています。7枚シ-ト構成で1枚目に出席簿とシ-ト名を付け2枚目以降は1年生から6年生とシ-ト名を付しています。 ブック名は出席簿としてありますが、このブックを開いた回数をシ-ト1枚目セルB5に表示する方法を教えてください。 エクセル2003でのマクロ使用時にファイル・プロパティ・ユ-ザ-設定に表示する形は、こちらのブログで拝見させていただきましたが、エクセル2007使用時に特定のシ-トの特定セルにブックを開いた回数を表示する方法を教えてください。 お手数を掛けて申し訳ありませんが宜しくお願いいたします。

みんなの回答

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

目的に合うかどうかわかりませんが、もう少し進化したマクロを紹介しておきます。 VBエディターを起動したら Thisworkブック をクリックして Private Sub Workbook_Open() With Sheets("このファイルの使用状況Log") .Range("A65536").End(xlUp).Offset(1, 0).Value = Date .Range("B65536").End(xlUp).Offset(1, 0).Value = Time .Range("C65536").End(xlUp).Offset(1, 0).Value = Environ("COMPUTERNAME") .Range("D65536").End(xlUp).Offset(1, 0).Value = Environ("USERNAME") End With ThisWorkbook.Save End Sub をコピーして下さい。 そしてシートを追加して シート名を このファイルの使用状況Log としておき 1行目に 日付 時刻 PC名 ユーザー名 と入れて保存してください。 次に このファイルを開いたときに このシートに 何時、誰が開いたかの記録が残ります。 エクセルの場合、ファイルを保存せずに閉じられると記録ものこりませんので 開いたときに 一度 上書き保存 をマクロで実行させています。 うまく行きましたら、このシートごと非表示にして保護をかけておきます。 故意に編集できなくしておきます 必用であれば B5セルに COUNTA関数で データの件数を出しておけばよいでしょう。

samchan
質問者

お礼

ありがとうございました。 頂戴いたしました形でシ-ト使用状況を作成し、誤謬発生防止と記録の確実性確保の手段となりました。 エクセルに不慣れなため手順確認に時間が掛かり、御礼を申し上げますのが遅くなりました。お許しください。 拝

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

エクセルに慣れないのか、質問の記述方法に普通と違う点がある。VBAなど大丈夫ですか。 ーー 整理すると ブック  出席簿 1ブックだけ シート  上記ブックに 出席簿ー1年生ー2年生・・-6年生の7シート     X枚目というのはあいまいでシートタブで表示順序は直ぐ変えられる。 がある。 このブックを開いた都度回数を出席シートのB5に表示する >シ-ト1枚目セルB5 とは出席簿シートですか?それなら出席簿シートのセルB5、と書けば良い。紛らわしい。 >マクロ使用時にファイル・プロパティ・ユ-ザ-設定に表示する形は この意味は良くわからない。このここのプロパティなどの意味はわかるが、何を言いたいのか。かくひつようなし。 >こちらのブログで拝見させていただきましたが この質問コーナーは「ブログ」では無いと思う。 >「特定のシ-トの特定セルにブックを開いた回数を表示する方法 これも前半に具体的に書いてあることで、「特定の」とかと、あとから総括して、書く必要がない。 また2007の場合もコードは変わらないと思いますが。 「Excel 2007 ではデフォルトで Visual Basic for Applications が無効に設定される 」(後述)ことに戸惑っているのかな? ーー エクセルVBAでブックを開いた都度行われるのは、WorkBook_Open そこで出席簿シートのB5の値に+1すれば良いと思います。 VBE画面で、ThisWorkbookをダブルクリックして右側の画面に出てきた左側の「General」の部分で「Workbook」を、右の「Declaration」部で「Open」を「選び Private Sub Workbook_Open() End Sub ガ出るが、その真中に Private Sub Workbook_Open() Worksheets("Sheet1").Range("B5") = Worksheets("Sheet1").Range("B5") + 1 End Sub のように1行入れる。 質問の場合は、出席簿シートなので Worksheets("出席簿").Range("B5") = Worksheets("出席簿").Range("B5") + 1 です ーーー プログラムでは、変数と言う内部メモリにつながるところのデータ(数)で 計算しますが、ブックを閉じると変数内容は消えてしまう。だからブックのシートや別のテキストファイルなどに(前回までの情報を)記憶させておかないといけない。 エクセルのシートのセルにデータ有りー>ブックを閉じるー>エクセル形式でー>ディスクにブックのセルデータや諸設定を保存 されるので、次回読み込んだ場合は、逆のプロセスでシートのセルに再現される。 ーー でもこんな質問は載った例は少ないと思うし、誰かがB4セルをいじくったら、狂ってしまうし、意味も無く開いたら+1されるし、と目的(質問異は書いてないが)に相応しいか、疑問に思う。 ーーーーー エクセル2007でVBAを使うセキュリティ関連のことは Googleででも「エクセル2007 VBA セキュリティ」で照会して http://support.microsoft.com/kb/919195/ja など2,3記事を読んでください。

samchan
質問者

お礼

エクセルに不慣れなため質問意図伝達不十分となり申し訳ございませんでした。 お陰様で所与の目的処理が実行出来るようになりました。 ありがとうございました。 拝

関連するQ&A

  • Excelのシ-トを別Bookへ貼り付け方法

    ExcelのBook内のシ-トを別Bookへ貼り付けたいのですが、単に選択してコピ-して貼り付けると、行の高さや幅がコピ-されません。 シ-ト情報を取得したまま、別Bookへのコピ-貼り付け方法をわかる方教えてください、よろしくお願いいたします。

  • エクセルで作成したブックの32のシ-トを連続してプリントアウトするマクロを教えて下さい

    エクセルで日報作成したブックに1~32のシ-トを設定活用しているのですが、月末に連続して各シ-トをプリントアウトしたいのですが、それに対応するマクロが有ればを教えていただけませんでしょうか・・・!

  • 同ブック内の複数シ-トを同時に見たい

    ウィンドウズ10・Excel2013で同ブック内の複数シ-トを同時に見たいのですがHelpを見ながら新しいウィンドウを開くと、同じシ-トが表示されそれから先が分かりません。 別のシートを開き二個のシ-トを開いたまま・並べて比較・整列 と進むと一個のシ-トしか表示されず、どうじに複数個表示できません。この前のヴァ-ジョンは二個シ-を開き整列を押すと簡単になりました。教えて下さいお願いします。

  • エクセルシ-トをグル-プ毎に表示させる

    お世話になります。 経営部門が、総務・技術・経理・管理・工場 と分別されており、一つのエクセルブックに現金預金・売掛金・支払利息など会計科目毎のシ-トを、総現金預金・技現金預金のように部門の頭文字一文字+会計科目名という形で作成保存しております。 現行はブックを開くと全ての部門での全ての会計科目シ-トが表示され目的の部門に帰属するシ-トを探すのが面倒なのと他の部門のシ-トも閲覧可能になってしまうという不具合が生じております。 エクセルのマクロで 部門略称(総・技・経・管・工)の目的部門名がシ-ト名の頭につけられている単独部門のみのシ-トを表示させるマクロ文と 逆に科目名指摘で全ての部門の当該科目シ-トのみを表示させるというマクロ文を お教えください。 下記のように幾つか試行したのですが目的部門単体でのシ-ト表示は出来ませんでした。 If sht.Name <> activeSheetName Then sht.Visible = False If sht.Name = ("総" & "*") Then sht.Visible = True おんぶにだっこ状態で恥ずかしいのですが、部門に帰属する全てのシ-トの表示させるマクロ文と 任意の会計科目を構成する各部門の当該科目シ-ト全部を表示させることが出来るマクロ文とを お教えください。

  • エクセル シ-トのセルを他のシ-トに貼り付けたい

    何時も、色々教えていただき有難うございます。 過去の質問を調べたのですが?探しきれなかったので、教えて頂きたいのですが? シ-トのセルを他のシ-トに貼り付けたいのですが、 例えば sheet2のA1セルに =sheet1!A2 sheet2のA2セルに =sheet1!B2 とした時、 この作業を =sheet1!T2 まで行うには、一つ一つ作業を行わなければならないのでしょうか? これを、オ-トフィルで行う事は出来ないのでしょうか?

  • エクセルマクロでの消費税計算式(他シ-トへの転記含む)を教えてください

    エクセルマクロでの消費税計算式(他シ-トへの転記含む)を教えてください。 お世話になります。現状シ-ト4枚構成で1枚目(シ-ト名は「日報」)に商品類別に5項目を縦列に税込額を入力し登録というマクロボタンを押すと、シ-ト2枚目(シ-ト名は「総額」に5項目を横5列に転記する形となっています。 シ-ト3枚目(シ-ト名は「税抜」)シ-ト4枚目(シ-ト名は「消費税」)での計算処理は、シ-ト「総額」の各行列セルに新規数値が転記された際IF関数とINT関数で税抜額と消費税額とをそれぞれのシ-トで計算する形(=各セルに上記関数での計算式が貼り付けているというチカラワザ形式)となっています。 シ-ト「日報」のセルA5に消費税率値を置いて、A列10行からA列14行までに商品類名称を固定表示し・B列10行からB列14行までに毎日の税込売上額を入力し、シ-ト「日報」の1つの登録ボタンのみを押すだけで、シ-ト3枚目と4枚目とのシ-トD列11行目からH列11行にそれぞれ各商品類別の「税抜額」「消費税額」を転記表示させるマクロについて御教授いただけると助かります。(各シ-トともI列は横行合計を表示してあります) 税抜額=総額▲消費税額という形で(税抜額の算出には消費税率を使用せず、総額から総額の5/105で消費税額を計算し当該消費税額と総額との差額という形)処理できれば助かります。 便法としては1日毎の入力都度ではなく、1ヶ月纏めてシ-ト「総額」から一括でシ-ト3枚目4枚目に税抜額・消費税額値を転記するというマクロも在るかと思うのですが(シ-ト名RANGE表示の為算式が長くなり成功しませんでした)申し訳ありませんが上記1日単位での処理方法をお教えくださると助かります。

  • エクセルでブックを表示しない

    いくつかのエクセルを同時に使用時に、あるブックのみ(たとえばマクロだけが入っている)を表示しない方法を教えてください。

  • エクセルハイパーリンクでブックを開きたい!

    WindowsXP、Excel2002を使用しています。 Indexとして使用するエクセルブックのセルに入力されたブック名にハイパーリンクを付けて、他のブックを開くようにしたいのです。 Indexエクセルブックのセル一列に、「A-001」,「A-002」,「A-003」・・・と入力しています。この「A-001」,「A-002」,「A-003」・・・はエクセルブック名で、全てのブックはひとつのブックにまとめてあります。  よろしくお願いします!

  • エクセルのエラ-表示の原因と回避方法。

    エクセルファイルを開くと次のメッセ-ジが毎回出ます。 ””開いているブックはほかのファイルへの自動リンクが設定されています。このブックを更新し、他のブックの変更を反映しますか。 はい-いいえ。”” 尚、このブックのシ-トは複数枚です。”はい”を押すと かなり以前に参照したフォルダ-名がでてきます。 ”いいえ”を押して何ら問題なく使用できますので、このメッセ-ジが煩わしいのですが、回避方法はあるのでしょうか、また、回避できたとして、その場合、このファイル使用上、支障が出るでしょうか。

  • excelブックの共有について

    掲題の件で、excelに詳しい方にご意見を頂きたく、ご質問させて頂きます。 仕事で受験校合格デ-タを集計しています。 1シ-ト目には、氏名・受験校・合否など入力していくデ-タベ-ス、2シ-ト目は、合格実績を集計するピボットテ-ブルを作成しました。 1シ-ト目には、皆さんに合否入力を入れてもらわないといけないので、入力しやすいよう、入力規則をところどころ入れ、複数ユ-ザ-が同時に入力できるよう、ブックの共有をオンにしました。 入力規則やピボットテ-ブルを触るのは私だけですので、そのときは共有のチェックを外せばいいかと考えたのですが、共有を外す際に注意しなければいけないことなど何かご存知の方がいらしたら、お教えいただけませんでしょうか。 本来ならアクセスを使用するべきなのでしょうが、自分を含めアクセスに明るいスタッフがいませんため、エクセルで考えた集計方法です。 宜しくお願いします。

専門家に質問してみよう