アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になっております。nowを1分おきで更新させたいのですが、別サイトに記載あったので挑戦してるのですが、うまくいきません。途中で断念してしまう感じです。
再度細かく書いたものでどなたかいただければとおもいまして投稿しました。
素人ですのでちょっとお願いします。
またVBAでは考えてなく下記の方法でを検討してます。
よろしくお願いします。

下記は別からのコピペです。

最低1分間隔でよければこのような方法もあります。

まず、何でもいいので1件だけデータのあるEXCELファイルを作成しておきます。
次に更新させたいEXCELファイルでメニューの「データ」―「外部データの取り込み」―
「データの取り込み」を開き、上記で作成しておいたEXCELファイルを指定します。

「表の選択」画面が表示された場合はデータを入力したシートを指定してください。

「データのインポート画面」では「データを返す先」にはどこか邪魔にならないところを
指定して、「プロパティ」ボタンを押し、「コントロールの更新」で「定期的に更新する」に
チェックを入れて右の更新時間に更新させたい時間間隔を設定してください。
(最低1分です)

これで「OK」ボタンを押すと指定した間隔で時刻が更新されます。

質問者からの補足コメント

  • 皆様いろいろご意見ありがとうございます。今回VBAではない形で考えているという点と実は一回この方法で試みて1つファイルができたのですが、もう一回やろうとしたらできなくなってしまったのが実際の話です。goouserさんがいっているコピーしたときに面倒というのがドンピシャで他のパソコンにそのままコピーしようとしたら元のサーバーに接続してなくて云々というエラーがでてしまい使えません。逆にこのエラーを解消できる方法はどうしたらいいでしょうか?

      補足日時:2018/02/16 00:15
  • 再度上記のコピーを他PCにした際なのですが、パス名に間違いがないことと、ファイルが置かれたサーバーに接続していることを確認ください。とエラー表示されます。これを解消したいのですが、可能でしょうか?

      補足日時:2018/02/16 01:04
  • gooUserさんいろいろありがとうございます。実はこのやり方なんですが、何年か前に私この記事を参考で自分でつくったのですが、かなり前で今回再度つくろうとしたらつくれなくなってしまいました。
    それでもうしわけありませんが、このやり方で再度最初からやり方を簡単に記載しなおしてもらえないでしょうか?
    私の現在の状況としてはファイルのsheet1 A1にnow関数をいれてる状況でこれを1分毎に更新させたいという感じです。これってもう一つ別ファイルを作ってリンクみたいのさせるのだったか1つのファイルで例えばsheet2にデータを作ってだったかがわからなくなってしまいました。

    ファイル1を作ってそのあとにファイル2を作ってファイル1A1にnowをいれてなどの手順のようなものを教えてもらえれば助かります。
    よろしくお願いします。

      補足日時:2018/02/16 06:01
  • うれしい

    おせわになりました。このサイトはエクセル関係で何度か利用させていただいてます。高度で優しく教えていただき助かります。いただいた内容で私なりのものを作成できそうですのでなんとかなりました。
    皆様に感謝のほうをこちらの補足分にてお伝えします。ベストアンサーは今回goouserさんにさせていただきます。ありがとうございます。
    追記
    質問者さんの中でVBAのほうが楽でしょという意見いただいておりましたのでご説明しておきますと実はこのnowの自動更新に関して以前にVBAで作ったものを教えていただいておりまして、それを実行して利用していたのですが、私の使用環境で複数のファイルをたちあげてそのVBAを使うという状況になった時にフリーズしてしまったり不具合がでたりしたのでVBAを使わない方向をと考えたのが経緯でした。細かいことかかず混乱させてしまい失礼しました。またよろしくお願いします。

      補足日時:2018/02/17 03:51

A 回答 (7件)

いろいろ試してみました。



☆ Excel2003ではうまくいきました。
・最大で1分弱の遅れが生じます。
・更新元ファイルのパスが固定になるので、他のPCへのコピーが面倒

☆ Excel2016ではダメでした。
・ 更新元のエクセルファイルを「.xlsx 形式」で作成するとデータファイルとして認識してくれないようです。
・ 更新元のエクセルファイルを「.xls 形式」で作成するとデータファイルとして認識してくれますがうまくデータが取り込めません。
・ 更新元をエクセルファイルではなくテキストファイルにした場合データが2つ以上あるようなものならば取り込めるのですが、更新してくれませんのでダメでした。

すなおにマクロ(VBA)を使った方が簡単のような気がします。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2018/02/17 03:39

今回、プリファレンスの高い質問で、反面、実用性は低いような気がしますので、見送ろうとは思いましたが、Excelで時間を表示するというのも、長いあいだにはいろんなものが出ています。

ただ、その延長上には絶対的にプログラミングで行うというのは避けられません。VB6 ですと、TIMERコントロールがありますが、VBAにはありません。では、VBAはどうするかというと、私の知る範囲では、Win32 APIを使って解決するというのが常套手段でした。Excelに対する負担度は、このWin32 APIが最も低いはずです。なぜなら、PCの
内部時計を使っているからです。

しかし、パルスが発生しているもので、NOW()関数を更新させるだけの目的なら、後は計算(Calculate)イベントを発生させるだけでよいのではないでしょうか。

試しに、データ-外部データの取り込み-Microsoft Query-
(My Data Sourceから、)Excelファイルでテーブル(ピボットも同様)を作ってありましたから、それを今のExcelファイルに接続して、1分ごとに更新とすれば、
計算イベントは発生するので、時刻は更新されます。

これ自体は、Excel To Excel なので、同フォルダーでも構いません。片方が、テーブル仕様になっていれば、Query の対象になります。

他にも、わざと循環参照を発生させて、オプション-数式-反復計算を行うにチェックをする
で、計算イベントを発生させることが出来ます。

もちろん、本来、パルスを送ることも発生させることも、いえ、Windowsの機能自体にもそういう時刻表示の機能がありますから、その手段を選ばなければ利用できる方法はいろいろあるはずです。
「エクセルnow関数自動更新」の回答画像7
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2018/02/17 03:39

念の為確認しておきます。

エクセルは何をお使いですか?
Excel2003 以前ならば多分作成できると思いますが、Excel2007 以降ならば作成は多分無理だと思います。(作成されたものを使う事は出来きます)
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2018/02/17 03:39

No.1 の追補



Excel2003 で作成した物は Excel2016 でも動作しました。
コピーなどをしてもフォルダーなどの関係が変わらないようにCドライブ直下に「test」というフォルダーを作成して、そこに参照元ファイルと実行するファイルを保存して作成しました。
フォルダーごと同じCドライブ直下にコピーをしたらそのまま使えましたよ!
多分サーバーに置いたものを共用しての使用は出来ないと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2018/02/17 03:39

nowを1分おきで更新させたいのですが、、、、VBAでは考えてなく、、



目的が何か想像できないのですが、
もしも、パソコン画面で時刻などを単にみたいだけならば、画面右下に時刻表示はあるし、無料のアプリはいろいろ工夫されているものがあります。
https://freesoft-100.com/pasokon/clock.html

NOW()関数のあるセルが60秒ごとに更新されるとして、その更新結果を、EXCELで利用する(数式で参照する)のでしょうか。 エクセルの画面上(シート上)に NOW()関数を使っているところが数カ所あると、それら全部が、一斉にすべて更新されてしまっていいのでしょうか。 もちろん、そうしたNOW()関数を使っているセルを参照するセルも、60秒ごとに更新のときに同時に書き換わってしまいます。
なにかかなり使いにくい状態になりそうな気がします。

また、特に外部データを取り込みたいのではないということならば、VBAを定期的に実行する方法の方が簡単に、定期的にNOW()を更新できると思います。
たとえば、次のコードで、
毎00秒に"hh:mm"の形式で、時分のデータが、D2のセルに更新表示され、
それ以外のセルにあるNOW()関数も同時に更新されます。

Sub mmt()
Range("D2") = Time: Range("D2").NumberFormatLocal = "hh:mm"
nhm = TimeSerial(Hour(Time), Minute(Time), 0)
Application.OnTime nhm + TimeValue("0:01:00"), "mmt"
End Sub

このVBAのコードは、excelを開いて、開発タブをクリックし、Visual Basicのマークをクリックし、そのVisual Basicのウインドで、挿入タブをクリックし、標準モジュールをクリックし、開いたモジュールに、上のコードをコピーしたものを貼り付けて、キーボードのF5キーを押せば、それで動きます。 このコードを書いたbookは、「マクロ有効ブック」として保存します。自動更新を止めるには、Visual Basicのウインドで、メニューの下にある■(リセット)を押します。自動更新を再開するには、Visual Basicのウインドで、メニューの下にある▲(右向き三角:subの実行)を押すか、キーボードのF5キーを押します。
自動更新の時間間隔は、TimeValue("0:01:00")をTimeValue("0:00:20")とすると、20秒間隔のように変えることができます。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2018/02/17 03:39

コピペ内容の一部で検索してみたら、コピペ元を見つけました。


https://detail.chiebukuro.yahoo.co.jp/qa/questio …
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2018/02/17 03:39

》 下記は別からのコピペです


そのコピー元の URL を教えてください
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2018/02/17 03:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています