Windows NTでExcel 2000を使っています。
Excel VBAでユーザー定義関数を作り、いろんな場合分けで計算できるようになったのはいいのですが、自動計算の Application.Volatile を文頭に置いているので操作のたびに再計算をして動作が遅くなってしまいました。この関数を使ったファイルに時間がかかるのは仕方ないことでも使っていないファイルまでたびたび再計算されてしまうのではさすがに困ってしまいます。数値を変更したときなど、自分の都合に合わせて再計算ができるようにならないものでしょうか。
他の方の質問を見たところ、文頭に手動化の文を置いて、最後に自動化の文を置くようアドバイスしてありましたがこれではファイルを閉じない限り再計算されないのではないかと心配になり、質問をしてみました。よろしくお願いします。(この文頭を持ったファイルを複数開いて作業しているのも関係あるのでしょうか?)

このQ&Aに関連する最新のQ&A

A 回答 (2件)

EXcel2000は使ったこと無いのですが、97で私が使用している方法は、次のようなものです。


(1)文頭に Application.Calculation = xlCalculationManual(手動化)を置く。
(2)計算させたい個所に、Application.Calculate(再計算)を置く。
(3)文末に Application.Calculation = xlCalculationAutomatic(自動化)を置く。
これで手動化のまま再計算されるはずです。

この回答への補足

解答ありがとうございます。
ただちょっとわからないのは(2)の「計算させたい個所」とは具体的にどのあたりなのでしょうか?
計算式はIF構文とSelect Case…を組み合わせて作っているのですが
End Selectのたびに(2)を使えばよいのでしょうか?
お手数ですがよろしくお願いします。

補足日時:2001/11/29 10:11
    • good
    • 0

どの時点で再計算が必要になるかによります。



IF構文とSelect Caseをお使いとのことですが、この構文の中でセルに数値を入力する作業をしている場合、それにより変更された計算結果を構文の中で必要としているのでなければEnd Selectの後ろでいいと思います。

計算結果を必要とするまで、むだな再計算を用いなくて済むようプログラミングすることが大切であろうと思います。
    • good
    • 0
この回答へのお礼

ありがとうございました。とても参考になりました。
プログラミングについては必要個所だけかじった初心者なので
構文に必要・不必要の判断がまだまだ難しいのですが
これから色々勉強して使えるプラグラムを組めるようになりたいです。

お礼日時:2001/11/29 13:03

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q特定のファイルを自動的に暗号化するフリーソフト

Windowsで稼働するソフトで、特定のファイルを自動的に暗号化するフリーソフトを探しています。これをタスクに登録して特定のファイルを自動的に暗号化させるのが目的です。
暗号化ですが、ファイル名と拡張子を自動的に暗号化するものでもかまいません。ZIP圧縮の暗号化など、暗号が簡単ではないにしろ、暴かれやすいような暗号化をするフリーソフトは除きます。
どなたか、ご教授の程宜しくお願い致します。

Aベストアンサー

> もっと詳しく記述願います。

やりたい事が不明瞭ですので、具体的な手順はちょっと…。

・特定のファイルとは?
 -特定のフォルダ、ファイル名の1ファイル
 -特定の種類のファイル
 -それ以外の特定のファイル
・ファイル名と拡張子を自動的に暗号化とは?
 -特定のファイル名のファイルを暗号化したい
 -ファイル名や拡張子も暗号化している事が分からないようにしたい
・タスクに登録という事は?
 -起動時、一定時間ごとに暗号化したい

・対象のファイルは他のアプリケーションで開いている?
・暗号化の目的は?他者に見られたくないのなら、暗号化前のファイルが残るのは問題?
・OSはXP?
・ファイルサイズは?

などなど。

--
例えばですが、

アタッシェケース
http://www.vector.co.jp/soft/win95/util/se280871.html

ですと、以下のバッチファイルでファイルを指定して呼び出せました。(Win2000環境)

↓↓↓↓↓ hoge.bat ↓↓↓↓↓
"C:\Program Files\アタッシェケース\AtchCase.exe" "D:\hoge\hoge.txt"
↑↑↑↑↑ hoge.bat ↑↑↑↑↑

暗号化パスワードを記憶する設定なら、多分暗号化してくれるハズ。

> もっと詳しく記述願います。

やりたい事が不明瞭ですので、具体的な手順はちょっと…。

・特定のファイルとは?
 -特定のフォルダ、ファイル名の1ファイル
 -特定の種類のファイル
 -それ以外の特定のファイル
・ファイル名と拡張子を自動的に暗号化とは?
 -特定のファイル名のファイルを暗号化したい
 -ファイル名や拡張子も暗号化している事が分からないようにしたい
・タスクに登録という事は?
 -起動時、一定時間ごとに暗号化したい

・対象のファイルは他のアプリケーションで開い...続きを読む

Qエクセルの関数?項目の種類を自動で計算したい

セルに、りんご、なし、みかん、、、、etc.沢山果物の名前が入っていたとします。その種類が全部でいくつあるか知りたいのです。
データの集計を使うとわかるとは思うのですが、その方法でなく、特定のセルにりんご、なし、みかんetc、、、全部で10種類とか出したいのです。
よろしくお願いします。

Aベストアンサー

作業列を作っても構わないのであれば、
A1:A10に果物の名前が入っていたとして、A12に果物の種類の数を入れるとした時、
・B列を作業列としてB1に=IF(COUNTIF($A$1:A1,A1)>1,1,"")といれて以下コピー
・A12に=COUNTA(A1:A10)-SUM(B1:B10)
・B列はB列全体を選択して右クリック→表示しない、で非表示にする
という方法もあります。

QVista対応で、自動再暗号化機能のある使いやすい暗号化ソフトを探しています。

使いやすい、Vista対応のフォルダ・ファイル暗号化ソフトを探しています。

求める機能は、アプリケーションやファイルを終了すると、再度パスワードを設定しなくとも、自動的に再暗号化されるものです。フリーウエアでも有料のもの(数千円程度)でも構いません。ご存じの方がおられましたら、よろしくお願いします。

Aベストアンサー

割り込みですみません。m(__*)m
回答No.1で紹介されているソフトを使用してみました。

TrueCrypt(フリーソフト/Vistaにも対応)
・作成できるボリュームの最小サイズ
 FAT:19KB、NTFS:2526KB
日本語言語パックに翻訳されたマニュアル(PDF)も入っ
ています。
※マニュアルに注意事項が書いてありますので、よく
読んでから作業してください。(新規ボリューム作成時
にデータが保存されたファイルやドライブを選択しない
事など)


B's Security Disk Plus(製品/Vistaには未対応)
・作成できる仮想ディスクの最小サイズ
 100MB
試用版がないようなので試していません。
説明を読む限りは、TrueCryptと類似した操作性のよう
です。


暗号化マスター3+ファイル完全消去(製品/Vistaにも対応)
http://www.fli.co.jp/product/am3/top.html
※64ビットエディションには非対応です。
試用版がないようなので試していません。
説明を読む限り上の2つのソフトとは違い、既存のファイル
やフォルダを暗号化するタイプのようです。
自動暗号化フォルダ機能だけの「自動暗号化マスター3」
もあります。
http://www.fli.co.jp/product/jam3/top.html


クリプティナLE(フリーソフト・製品もあり/Vista未対応)
・作成できるボリュームの最小サイズ
 1MB(?)【最大サイズは25MB・製品は25GBと250GB】
※Vistaには次期バージョンで対応予定だそうです
が、発売日は発表されていません。
操作性はTrueCryptに似ています。
http://www.vector.co.jp/magazine/softnews/070217/n0702171.html


自動暗号化マスター3も使い易そうですが、とりあえず
フリーソフトのTrueCryptを試してみてはいかがでしょう
か?

割り込みですみません。m(__*)m
回答No.1で紹介されているソフトを使用してみました。

TrueCrypt(フリーソフト/Vistaにも対応)
・作成できるボリュームの最小サイズ
 FAT:19KB、NTFS:2526KB
日本語言語パックに翻訳されたマニュアル(PDF)も入っ
ています。
※マニュアルに注意事項が書いてありますので、よく
読んでから作業してください。(新規ボリューム作成時
にデータが保存されたファイルやドライブを選択しない
事など)


B's Security Disk Plus(製品/Vistaには未対応)
・作成できる仮...続きを読む

QExcelで、VBAのcase文のような使い方のできる関数(セルに入力して使う関数)はないでしょうか。

タイトルの通りなのですが、

たとえば、
A1のセルの値が 1 だったら B1は "仕入先"
A1のセルの値が 2 だったら B1は "得意先"
A1のセルの値が 3 だったら B1は "社員"
のようにしたいのです。

if文を駆使すれば可能なのは理解しているのですが、もう少しスマートに式を書けないかな、と思って質問しました。

Aベストアンサー

条件が少ない場合、
=IF(A1<>"",LOOKUP(A1,{1,2,3},{"仕入先","得意先","社員"}),"")や=IF(A1<>"",CHOOSE(A1,"仕入先","得意先","社員"),"")
条件が多い場合、
=IF(A1<>"",VLOOKUP(A1,$C$1:$D$m,2FALSE),"")
・関係表リストを別に設定します。
 C1(1),D1(仕入先)
 C2(2),D2(得意先)
 C3(3),D3(社員)
 Cn(x),Dm(yyy)

Qファイル暗号化の自動解除

はじめまして。

Windows2003Serverで動いているファイルサーバーがあります。

クライアントパソコン(WindowsXP)のローカル上で設定した
暗号化ファイルを上記のファイルサーバーへ保存する際に、
暗号化の設定がそのまま引き継がれて、他のクライアントが
そのファイルを編集できずに困っています。

このような現象を回避したいのですが、クライアントパソコンから
暗号化ファイルをコピーしようとする際に、その暗号化を自動的に
解除するような設定は出来ないのでしょうか?

当方、あまりネットワークやサーバーに詳しくも無いのにこの春から
ネットワーク管理を任され日々学習です。ほんとに難しい。

どなたか、知識のあるか方のご教授をお待ちしております。

よろしくお願いします。

Aベストアンサー

参考情報です。
http://support.microsoft.com/kb/223316/JA/
複数ユーザー用にファイルを暗号化する方法が紹介されています。
http://www.microsoft.com/japan/technet/windowsserver/2003/technologies/directory/activedirectory/stepbystep/efs.mspx
「特定のコンピュータ セットの EFS 設定の無効化」という項目があります。

Qエクセル 時刻の計算(小数の計算) ファイルにより計算結果が異なる

時間の計算を15分単位で切下げるためFLOOR関数を使っています。
まったく同じ時間、関数なのにファイルにより計算結果が異なるので困っています。

具体例は

2016/8/04 18:00:00 に対し floor関数で15分単位で切り下げた場合、

Aのファイルは 2016/8/4 18:00:00
Bのファイルは 2016/8/4 17:45:00となります。

計算過程を確認したところ、
Aのファイルは FLOOR(42586.75, 0.010416667) = 42586.75
Bのファイルは FLOOR(42586.75, 0.010416667) = 42586.73958

と全く同じ関数、引数なのに、ファィルにより計算結果がことなっています。(同じPCです)

※上の42586.75 は2016/8/4 18:00:00のシリアル値
  0.010416667は 0:15:00 と入力したセルをC5と参照したところ表示された値です。
  
業務で使うため、計算結果がことなる理由を把握したいです。
どうぞよろしくお願いいたします。

時間の計算を15分単位で切下げるためFLOOR関数を使っています。
まったく同じ時間、関数なのにファイルにより計算結果が異なるので困っています。

具体例は

2016/8/04 18:00:00 に対し floor関数で15分単位で切り下げた場合、

Aのファイルは 2016/8/4 18:00:00
Bのファイルは 2016/8/4 17:45:00となります。

計算過程を確認したところ、
Aのファイルは FLOOR(42586.75, 0.010416667) = 42586.75
Bのファイルは FLOOR(42586.75, 0.010416667) = 42586.73958

と全く同じ関数、引...続きを読む

Aベストアンサー

あまり、大勢の人があれこれ違うことを言ってもしょうがない話ですが、この現象を、浮動小数点(丸め)誤差といいます。

ある意味では、時間丸め誤差といっても過言ではないのは、一般の浮動小数点誤差にはない現象が含まれます。

この浮動小数点誤差は、簡単にいえば、Excelは、2進で計算されているからということになるのですが、ベテランの人でも、なかなか気が付きにくい話なのです。

対策自体は、すでに出ている内容ですが、
一体、どうしてこうなったか、それが問題ですよね。

・2016/8/4 18:00:00 この表示されている日付時間はどうやって作ったか?
ドラッグコピーなどで作りませんでしたか?

時間の元の数字というのは、10進からすると無限小数でできていて、それをExcelでは時間表示で人間に分かるように、時間・分・秒で表示されます。その時に丸めているのですが、これを「時間丸め」といって、浮動小数点丸め誤差とは若干違う問題が含まれています。

おそらく、単独で入力したときには、間違いは出ないはずです。ところが、ドラッグコピー(フィルハンドルでドラックして連続した数字を出すこと)したり、時間値の無限小数を足し算・引き算を含め四則演算(今回のFLOOR関数も含めます)をすると、誤差が生じてしまいます。

元の数値の"18:00:00" は、若干数字が足りなくても、18:00:00と出てしまうのです。だから、[割り切れない数値]の時間値をドラッグコピーしてはいけないのです。

割り切れる数(0.5=30分,0.25=15分)

なお、日付は、整数ですから、問題は発生しません。

それでも、ドラッグコピーをしなくては大変だという時もあります。

画像でも分かるかとは思いますが、
=DATEVALUE("2016/8/4")+TIME(8,1*(ROW(A1)-1),0)
こんな数式を考えてみました。

他にも、値をコピーして、上書きにした後に、区切り位置で、改めて数値にする方法など、さまざまです。

もちろん、単独の場合は、皆様のご指摘の通り、時間文字列に、TIMEVALUE関数 や、"8:00"*1 でも、時間の数値になります。

プログラミングでは、整数法や小数点固定法(文字列にして数値に戻す)などがありますが、Microsoftでは、ROUND関数を勧めているような気がします。桁数は、必要に応じてですが、私は、昔の経験値で時間に対しては、小数点6桁を丸めるようにしています。

B4:
2016/8/4 08:02:00

=ROUND(B4,5) 42586.334720000000000  01:59.8  足りません。
=ROUND(B4,6) 42586.334722000000000  01:20.0

と差が出てしまいますが、今回のFLOOR関数では、その問題は出ません。

添付画像では、1分ごとで、1時間中に、正しいのは2つしかありません。後は、全部違ってしまいました。

何かのお役に立てれば幸いです。

あまり、大勢の人があれこれ違うことを言ってもしょうがない話ですが、この現象を、浮動小数点(丸め)誤差といいます。

ある意味では、時間丸め誤差といっても過言ではないのは、一般の浮動小数点誤差にはない現象が含まれます。

この浮動小数点誤差は、簡単にいえば、Excelは、2進で計算されているからということになるのですが、ベテランの人でも、なかなか気が付きにくい話なのです。

対策自体は、すでに出ている内容ですが、
一体、どうしてこうなったか、それが問題ですよね。

・2016/8/4 18:00:00 ...続きを読む

Qデスクトップに移動すると自動で暗号化されてしまう

お世話になります。

先日、デスクトップのプロパティ⇒属性⇒詳細設定⇒内容を暗号化してデータをセキュリティで保護する、にチェックマークを付けて適用した所、解除が出来なくなってしまいました。

それ以降、メール添付ファイルをデスクトップに保存、デスクトップにエクセルの名前を付けて保存などすると全て暗号化されてしまいます。
それぞれ解除はできます。

暗号化されないようにプロパティで変更しようとすると、『属性の適用エラー』
C:\Users\NEC-PCuser\Desktop 指定されたファイルの暗号化を解除できませんでした。
と表示され、再試行しても同じエラーを繰り返します。

保存先をドキュメントにすればいいのですが、なにかと不便で困っております。
Web上で解除方法を探したのですが、デスクトップを開いているからエラーになってしまうのかともなんとなく思っています。

お分かりの方がいらっしゃいましたらアドバイスをいただけますでしょうか。
よろしくお願いします。

Aベストアンサー

恐らく、デスクトップフォルダがエクスプローラーによって使用されている為、設定が解除出来ないのではないかと思います。

以下の圧縮ファイルをダウンロードし、解凍し、中にある「Decrypt-Desktop」(.bat)というファイルを実行してみてください。

http://qa99.webcrow.jp/file/Decrypt-Desktop.zip

エクスプローラーを強制終了し、
デスクトップフォルダの設定を変更し、
エクスプローラーを再び起動する、
という内容のバッチファイル(連続処理ファイル)です。

エクスプローラーが強制終了され、PC起動からそこまでのエクスプローラーの設定が破棄されますので、PC起動直後か、一度サインアウトしてサインインした直後に行うと良いかと思います。

処理は一瞬で終わります。黒いウインドウが現れて、消えたら完了です。

Qエクセルファイルをオープンしたときの再計算について

エクセルファイルをオープンすると自動的に再計算がされます。VBAを使って、Workbook_Open()で、再計算を止めると、当然、ブックを開いた時全てで再計算が停止してしまいます。
で、質問ですが、あるブックから他のブックを開いた時には、再計算を行なわない(あるブックにVBAを組み込んで・・(イベントは、ボタンにからめてもok!)にして、手動で他のブックを開いた時は、再計算を行なうようなことが出来るのでしょうか?
VBA初心者の僕として、精一杯考えたのは、親となるブックから、他のブックを開いた時に、他のブックのWorkbook_Open()イベントが始る前にWorkbook_Open()を書き込めればできると思うのですが?そんなこと無理なのでは?って思います。どなたか?詳しい方いませんでしょうか?宜しくお願い致します。

Aベストアンサー

こんにちは。KenKen_SP です。

> 他のブックのWorkbook_Open()イベントが始る前にWorkbook_Open()
> を書き込めればできると思うのですが?

VBA コードを VBA から書き込むのは可能なのですが、禁じ手ですし、
今後不可能になるかもしれません。

Workbook_Open ではなく、Activate イベントすれば、このコードが
書かれたブックだけで動作しますが、どうですか?

Private Sub Workbook_Activate()
  Application.Calculation = xlManual
End Sub

Private Sub Workbook_Deactivate()
  Application.Calculation = xlCalculationAutomatic
End Sub

QJDBC通信は暗号化されていますか?

WebアプリケーションとOracleDBをJDBCでコネクトしています。
このJDBCによる通信は、データを暗号化しているのでしょうか?あるいは、暗号化するための設定があるのでしょうか?

Aベストアンサー

あまり使ったことがないですが、通信経路 (JDBC Thin, JDBC OCI を含む) の暗号化を行うためには、まず Oracle Advanced Security オプションのライセンスを購入する必要があります。

JDBC OCI であれば、若干バージョンは古いですが、参考 URL に資料が公開されています。

参考URL:http://otndnld.oracle.co.jp/products/iserver/oracle8i/pdf/o8i_816_asont_11_1963.pdf

QExcelで自動再計算されないようにしたいのですが。

セルE1に
「=A1:C1」または「=A1+B1+C1」
と入力した後、セルD1に数字を入力すると、セルE1の式が、自動で
「=A1:D1」または「=A1+B1+C1+D1」
に書き換えられてしまいます。
これを変更されないようにする方法は、何かあるのでしょうか?
オプションなど、一通り見てみたのですが、見つけられませんでした。
そこまで深刻な状況ではありませんが、それなりにちょっと困っています。
どなたか、分かる方がいらっしゃいましたら、ぜひ教えてください。

Aベストアンサー

以下の通り行って下さい。
・ツール→オプション→編集→リスト形式及び数式拡張するをチェックオフ
以上


人気Q&Aランキング