gooポイントが当たる質問投稿キャンペーン>>

こんばんは、PCのSSD化について、初心者なので教えて頂けませんでしょうか。

現在、

Core2 Quad Q9400 2.66Ghz
メモリ 4GB
Vista 32ビット 
HDD 1TB

でエクセルのマクロを動かしています。

このパソコンのHDDをSSDに換装した場合、マクロの動作スピードにも変化は出てくるのでしょうか?

それとも、メモリ、CPUの上位化が必須でしょうか?

詳しいかた、教えて頂けませんでしょうか。

よろしくお願いいたします。

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

A 回答 (1件)

マクロの内容によります。


ディスクアクセスを含むマクロならば高速化の可能性はありますが、
多くのマクロはディスクアクセスを含まないので大勢に影響はないでしょう。
ただし、Excelはメモリー消費の大きなソフトなので、仮想メモリーを
ディスク上に置くことが多く、そういう意味では多少の速度の改善があるでしょう。

しかし、それよりもCPUの高速化とメモリーの大容量化の方が効果が高いでしょう。
    • good
    • 2
この回答へのお礼

回答ありがとうございます。

そうですよね、ディスクにアクセスする機会が無いと時間短縮する事が無いですよね。

再確認させて頂きました、回答ありがとうございました!

お礼日時:2015/03/02 01:18

このQ&Aに関連する人気のQ&A

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

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

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

Qエクセルの処理速度を上げるにはメモリを増設したら良いのですか?

最近、大きなデータを使って自分なりに分析を始めるようになりました。

もちろん、データの量が多くなれば、途中でフリーズみたいに遅くなったり、止まってしまう事が多くなり、そういや昔、メモリを増設することが処理速度の向上なんとかかんとか、と聞いた記憶があったのですが、エクセルの処理速度(計算速度?)を向上させるには、新たにメモリを増設するのが良いのでしょうか。

データ処理用のサーバーなんかもビジネスで提供されているとも聞きますし、メモリとサーバーの違いとかあまり良く分からないため、一番効率よく処理速度が向上できる方法を教えて下さい。

ちなみに、結構自分のPCはメモリの増設ができるタイプのようです。

もし、メモリの実装とかじゃなくて、パソコンの設定や不要なプログラムの排除の方が有効などの知識がありましたら、そちらの方の知識も教えてもらえたらありがたいです。

以上、よろしくお願いいたします。

Aベストアンサー

回答の皆さんが言われている通りです。
メモリスピードと容量はCPUを超えられません。
遅い理由は、ウイルスやデータの膨大・マクロ・再計算のスピード多々。
もしもメモリが足りなくなったら、スワップと言ってHDDをメモリ代わりになるので処理スピードが断然落ちます。
管理ツールの中のパフォマンスモニタを参考にされては如何ですか。
これからもビジネスでずっと使われるのでしたら、この際に高速なPCに乗り換えられたらと思います。

Qエクセル 強化するならcpuかメモりか?

パソコンを買い替えようと思っています
8年前の古いやつなので、Ci3 4G 500G 以上を考えています
エクセルで大量のデータを扱うことがあり
沢山の関数が入力してあるセルを 何千行もコピペして数分固まる
広い範囲のセルを選択して ジャンプでエラーセルを検索しようとして
範囲が広すぎて実行してくれない、などで苦労しています
こういうのをサクサクしてもらうために、更に良いパソコンを選ぶなら
cpuかメモりかどちらを強化すれば良いのでしょう

Aベストアンサー

CPUを優先します。
現行Excelの最大行数は1,048,576行にもなりますが、数千数万程度が相手ならメモリを8GB→16GBにするなどの増量は「サクサク」にはつながりません。"枯渇さえしなければ"という条件付きですが4GBでも512GBでも処理終了までの速度は同じです。

対して、
>沢山の関数が入力してあるセルを 何千行もコピペして数分固まる
関数だけでなく書式も含めたコピーになるとこの処理時間はCPUの能力も多分に影響を与えます。
また、最近のExcelならマルチコアCPUにGPU、64bitにまでも対応して処理の効率化を図るようになりましたから、それらのハードウェアを増強した方がより快適に使えるはずです。

よって、ご質問内の選択肢に限るならCPUにお金をかけることをおすすめします。

ただ、Excel以外の操作、特にWindowsエクスプローラ上でのコピーや移動や削除を考えると、HDDをSSDに替えることがもっとも時間というリソースを効率よく利用できるようになると思います。
順位を付けるならSSD>CPU>GPU>メモリだと思います。

CPUを優先します。
現行Excelの最大行数は1,048,576行にもなりますが、数千数万程度が相手ならメモリを8GB→16GBにするなどの増量は「サクサク」にはつながりません。"枯渇さえしなければ"という条件付きですが4GBでも512GBでも処理終了までの速度は同じです。

対して、
>沢山の関数が入力してあるセルを 何千行もコピペして数分固まる
関数だけでなく書式も含めたコピーになるとこの処理時間はCPUの能力も多分に影響を与えます。
また、最近のExcelならマルチコアCPUにGPU、64bitにまでも対応して処理の効率化を...続きを読む

Qエクセル:マクロ「Application.CutCopyMode = False」って?

エクセルのマクロを記録していると

「Application.CutCopyMode = False」

というものがよく出てきますが、これは何でしょう?
どういう意味のものかわかりません。
削除しても差し支えないのもでしょうか?

Aベストアンサー

「Application.CutCopyMode = False」の前で
セルのコピー、または切り取りを行っていると思います。
これは、その操作(セルのコピー、または切り取り)を無効にしているだけです。
------------
Range("A1").Select
Selection.Copy ← これを無効にしている
Range("A2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
------------
上記の場合であれば、「Application.CutCopyMode = False」を削除しても問題ありませんが、
以下の場合、貼り付け処理でエラーになります。
------------
Range("A1").Select
Selection.Copy
Range("A2").Select
Application.CutCopyMode = False
ActiveSheet.Paste ← ココでエラー
------------
ご自分で、セルをコピーしてみると分かると思いますが、コピーした範囲が点線で点滅されます。
「Application.CutCopyMode = False」をすると、
その点滅がなくなります。

「Application.CutCopyMode = False」の前で
セルのコピー、または切り取りを行っていると思います。
これは、その操作(セルのコピー、または切り取り)を無効にしているだけです。
------------
Range("A1").Select
Selection.Copy ← これを無効にしている
Range("A2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
------------
上記の場合であれば、「Application.CutCopyMode = False」を削除しても問題ありませんが、
以下の場合、貼り付け処理でエラーになります。
------------
...続きを読む

Qエクセルのセルにカレンダーを表示させ、日付をセルに入力させたい

エクセルについて教えて下さい。

エクセルのセルをクリックすると、
カレンダーのようなものが表示され、
マウスで選択すると、
セルに日付が入力されるようにするには
どうしたらよいですか?

すみませんが、宜しくお願い致します。

Aベストアンサー

#02です。foo-mさんがVBAをお使いになるなら、以下のサンプルをいじってみてください。

このサンプルはC4セルがクリックされたときにカレンダーコントロールを表示して、日付を選んだらその日付をC4に書き込み、カレンダーコントロールを閉じるマクロです。

Private Sub Calendar1_Click()
Selection.Value = Calendar1.Value
ActiveSheet.Calendar1.Visible = False
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$C$4" Then
ActiveSheet.Calendar1.Visible = True
End If
End Sub

マクロはシートのモジュールとしてペーストして下さいね

QPrivate Sub Worksheet_Calculate()のことでお聞きします

いつもgooの皆さんに大変お世話になっております
マクロの勉強を初めて2ヶ月の者です

Private Sub Worksheet_Change(ByVal Target As Range)にマクロを書いているのですが
「特定のセル範囲が変更されたときに処理を実行する」は分かるのですが
特定のセル範囲が変更されなくても、例えば、セルの値がインストールされているアドインで
変化した時の処理はどこに書いたらいいのでしょうか?

今現在、H列のTarget.RowとJ列のTarget.Rowにはアドインで、機器の温度が表示されていますが
この2点の温度変化で
Application.Speech.Speak "温度接近", True
などどやりたいのですが、Private Sub Worksheet_Calculate()に書けばいいのでしょうか
その場合、Private Sub Worksheet_Change(ByVal Target As Range)内の
Target.Row等の値はどうやったらPrivate Sub Worksheet_Calculate()で使えますか?
それとも、もしかしたら標準モジュールに書くのでしょうか?

うまく説明できていませんが、どなたか教えてください

いつもgooの皆さんに大変お世話になっております
マクロの勉強を初めて2ヶ月の者です

Private Sub Worksheet_Change(ByVal Target As Range)にマクロを書いているのですが
「特定のセル範囲が変更されたときに処理を実行する」は分かるのですが
特定のセル範囲が変更されなくても、例えば、セルの値がインストールされているアドインで
変化した時の処理はどこに書いたらいいのでしょうか?

今現在、H列のTarget.RowとJ列のTarget.Rowにはアドインで、機器の温度が表示されていますが
この2点の...続きを読む

Aベストアンサー

こんばんは。

今回の質問は、ご質問者さんには、別のイベントというか、紹介しましたね。その中に含まれていたかもしれません。

今回の件は、マクロを勉強して2ヶ月の人の話ではなく、3年やっても、5年やっても知らない人は知らないことで、かなりハイレベルというか、古めかしいというか、ほとんど知られていない技術だと思います。こういう話は、1冊の本にもなっています。本来、計測メーカー側の専門業者に頼んでしまったほうが早い気もします。たぶん、彼らは、公表はしていませんが、それ専用のVBA用のマクロを持っているはずです。

>特定のセル範囲が変更されなくても、例えば、セルの値がインストールされているアドインで
>変化した時の処理はどこに書いたらいいのでしょうか?

ふつうは、どこでもよいので、
=Now()
という式を書いて、
Private Sub Worksheet_Calculate()
に、イベントを拾わせるわけです。
しかし、少し、工夫が必要で、時々、これが困った動きをします。

Calculate のイベントが、ワークブック全体に働いてしまい、どこのシートを使っても、Calculateイベントが動いてしまいます。この方針で話が本格的になった時に、この対処法は、あらためて紹介します。

>(Worksheet_Change)のTarget.Row等の値はどうやったらPrivate Sub Worksheet_Calculate()で使えますか?

単に、モジュール変数を使って橋渡しするのか、それとも、同時で働くということなら、 Worksheet_Calculateのイベントでなくてもよいはずです。どのように使うのか、こちらではわかりかねます。本来、別の働きをするものです。もちろん、キーで入力した際は、Worksheet_Calculateのイベントは、起動します。

>Application.Speech.Speak "温度接近", True
>などどやりたいのですが、Private Sub Worksheet_Calculate()に書けばいいのでしょうか

ActiveX コントロールで入ってきた値が、どのように加わっていくのかにもよりますが、セルの位置は、Worksheet_Changeイベントのようにセルの位置は感知しませんから、インプットの場所が動いていくのでしたら、マクロで最後尾を探さなくてはなりません。

>それとも、もしかしたら標準モジュールに書くのでしょうか?
同様のコマンドで、標準モジュールに書く方法もあります。とても古い方法で、オブジェクト・ウィンドウにも出てこないはずです。しかし、まだ、同様の働きはしますが、今は、シートモジュールが主流になっています。

こんばんは。

今回の質問は、ご質問者さんには、別のイベントというか、紹介しましたね。その中に含まれていたかもしれません。

今回の件は、マクロを勉強して2ヶ月の人の話ではなく、3年やっても、5年やっても知らない人は知らないことで、かなりハイレベルというか、古めかしいというか、ほとんど知られていない技術だと思います。こういう話は、1冊の本にもなっています。本来、計測メーカー側の専門業者に頼んでしまったほうが早い気もします。たぶん、彼らは、公表はしていませんが、それ専用のVBA用の...続きを読む

Q「いずれか」と「いづれか」どっちが正しい!?

教えて下さいっ!
”どちらか”と言う意味の「いずれか」のかな表記として
「いずれか」と「いづれか」のどちらが正しいのでしょう???

私は「いずれか」だと思うんですが、辞書に「いずれか・いづ--。」と書いてあり、???になってしまいました。
どちらでもいいってことでしょうか?

Aベストアンサー

「いずれか」が正しいです.
「いづれ」は「いずれ」の歴史的かな遣いですので,昔は「いづれ」が使われていましたが,現代では「いずれ」で統一することになっていますので,「いずれ」が正しいです.

Qエクセルで特定の列にある日付データの中から、指定した日付範囲を抽出する方法を教えてください

例えばこんなデータなのですが、

2002/07/01 99 25 36
2002/07/05 55 33 25
2002/08/01 80 20 51

日付の入っている列を検索して、2002/07/01から2002/07/31
の範囲ならば、その行のデータを別のシートに抽出したいのですが、
日付の範囲は関数でどうすればよいのか分かりません。ACCESSなら
between 9999/99/99 and 9999/99/99って感じで簡単にできるの
ですが。。。エクセルの関数だとIF関数の論理式にAND関数を使って
>=2002/07/01
<=2002/07/31
と入力したので、2002/07/05ならば、いずれもTRUEなので、値を返して
くれると考えたのですが、なぜかダメでした。
(↓こういう入力をしました)
=IF(AND(Sheet2!A1>=2002/7/1,Sheet2!A1<=2002/7/31),Sheet2!A1,"該当月ありません")

Aベストアンサー

こんばんは!

=IF(AND(Sheet2!A1>=2002/7/1,Sheet2!A1<=2002/7/31),Sheet2!A1,"該当月ありません")

おしいですね(^^;
日付をそのまま入力してしまうと数式上では
 2002/7/31 → 2002÷7÷31 になってしまいます。
ダブルクォーテーションで括って(文字列)入力して
それを数値化しましょう!

=IF(AND(Sheet2!A1>="2002/7/1"*1,Sheet2!A1<="2002/7/31"*1),Sheet2!A1,"該当月ありません")

文字列 ="10" に対して 乗算 *1 としても数式が
なり立ち文字列の数字が数値化されます。="10"*1

------------余談--------------------------
ご質問の条件例の場合特例で 2002/7でればOKなので

=IF(TEXT(Sheet2!A1,"yyyym")="20027",Sheet2!A1,"該当月ありません")

でも可能ですね!

こんばんは!

=IF(AND(Sheet2!A1>=2002/7/1,Sheet2!A1<=2002/7/31),Sheet2!A1,"該当月ありません")

おしいですね(^^;
日付をそのまま入力してしまうと数式上では
 2002/7/31 → 2002÷7÷31 になってしまいます。
ダブルクォーテーションで括って(文字列)入力して
それを数値化しましょう!

=IF(AND(Sheet2!A1>="2002/7/1"*1,Sheet2!A1<="2002/7/31"*1),Sheet2!A1,"該当月ありません")

文字列 ="10" に対して 乗算 *1 としても数式が
なり立ち文字列の数字が数値化されます。="10"*1

--...続きを読む

QエクセルのIF文で「NOT=」はどう書くのですか?また、>=や<=の場合の書き方を教えてください

タイトルのとおりです

IF文で下記の3つの書き方がわかりません。

NOT=は、<>?
0以外の場合は、A1<>0?

A1が0と同じか、大きい場合は
A1>=0?

なんだか、うまくいきません^^;

よろしくお願いいたします

Aベストアンサー

A1が・・・・・
A1 <> 0  0以外
A1 >= 0  0以上(0を含む)
A1 > 0   0より大きい(0は含まない)
A1 <= 0  0以下(0を含む)
A1 < 0  0未満
A1 = 0  0

=<,=> などの書き方は使えません。

Q前期がマイナスの前年同期比の計算方法について

お世話になります。
初歩的な問題ですが、

前年の数字が -20,793,230で
今期の数字が  81,073,962 と

大幅に違っていました。

普通ならば今年度÷前年度で比率は求めれられますが、
前年度の数字がマイナスの場合、
比率の計算はどのようにしたら良いのでしょうか??

また、前年がマイナスで今期も同様にマイナスだった場合の
前年同月対比についても計算方法を教えてください。

よろしくお願い致します。

Aベストアンサー

前年度の絶対値(マイナスをとった値)と今期の数を足して前年度の絶対値で割ります。

どちらもマイナスの場合は
今年度÷前年度の答えにマイナスをつけます。

で、どうでしょう。

Qエクセルでメモリ不足のエラーが出ます

エクセルで2つのファイルを開くと「メモリ不足」のエラーが表示されます。

エクセルで作業をするためにファイル(1.86MBのファイル)を開け、続けて別のファイル(1.80MBのファイル)を開くと「メモリ不足」のエラーが表示されます。2つのファイルのシート数は両方とも75シートです。

教えて!gooに登録されている過去の質問を参考にさせていただきましたが解決しませんでした。
ちなみに参考にした回答は次の通りです。
1.そのファイルを別名保存してファイルが開けるか?
2.そのファイル内のシートの倍率を確認。100%以外のシートがある場合は100%に修正してから別名保存してファイルが開けるか?

当方のパソコン環境は次の通りになっています。
OSはWindowsXP HomeEdition SP2
メモリは512MB
ソフトのバージョンはExcel2000
対象ファイルのサイズは(A)1.86MBおよび(B)1.80MB
対象ファイルのシート数は両方75

みなさま、宜しくお願いいたします。

Aベストアンサー

こんにちは。

>対象ファイルのシート数は両方75

まず、ここがネックですね。

ここで、そのシートの限界値を実験してくれた方がいましたが、空の状態では、百は越えるのですが、何かを入れた状態では、1つのブックで、せいぜい40程度ではなかったか、と記憶しています。それが、二つになった時に、果たしてどうかは、そのときの実験にはありませんが、Excelアプリケーション(全体)として、芳しくないはずです。

また、ぎっしりと配列数式が詰まっていたり、外部参照式が多く入った状態では、解決の見通しが立ちません。配列数式は、Excel2000では、6,000個は使えないはずです。何が、配列数式かは、にわかには区別つかないこともあります。INDEX関数やLOOKUP関数も配列数式に変わることがあります。

また、Excel2000は、公開されていない、メモリ制限があります。「使用可能なメモリ」とヘルプにはありますが、何が使用可能かは、書かれていません。

Excelの使うメモリは、物理的なメモリとは違いますので、その周辺をいじっても、直らないことが多いです。おそらく、それぞれの機能のメモリの割り振りがありますので、トータルの数ではないはずです。#1さんのおっしゃっている「Excel2002/2003/2007等が使えるなら」は、その点で、Excel2002になった時に、内部的な制限がなくなったことを、以前掲示板で知りました。

コントロールツールや画像オブジェクト、プリンタ・ドライバ、アドインなどもExcel用として割り当てられたメモリを使います。

ある程度は、[システム]-[詳細設定]-[パフォーマンス] の値を増やせば直る可能性がありますが、先ほどのメモリの割り振りからすると、Excelのハングの可能性が高いです。

なお、他のブックで同様の問題は出ているとすれば、個人用マクロブックや*.xlbファイルを削除して、Excelの設定をリセットすることによって改善することもあります。

私がお勧めする方法は、ひとつは、データベースファイルにすることと、他は、VBAマクロの効用です。ブックからブックへという作業自体を全て、VBAにさせてしまうことで、メモリ負担を減らします。残念ながら、今のままでは、解決する望みは少ないと思います。

こんにちは。

>対象ファイルのシート数は両方75

まず、ここがネックですね。

ここで、そのシートの限界値を実験してくれた方がいましたが、空の状態では、百は越えるのですが、何かを入れた状態では、1つのブックで、せいぜい40程度ではなかったか、と記憶しています。それが、二つになった時に、果たしてどうかは、そのときの実験にはありませんが、Excelアプリケーション(全体)として、芳しくないはずです。

また、ぎっしりと配列数式が詰まっていたり、外部参照式が多く入った状態では、解決の見...続きを読む


人気Q&Aランキング