C#の開発者はどんな資格または検定を持ってる人が多いですか?

A 回答 (2件)

全体として見れば,関係する資格や検定を持っていない人が多いと思います。



C#として見るならば,MCPの.NET Framework関連のMCTSやMCPDは多いと思いますが。
ref)
Site: Microsoft Visual Studio 2010 – ラーニング ポータル
http://www.microsoft.com/japan/learning/training …
    • good
    • 0

必要な資格、検定はありませんから持っていない人が多いのでは。


MS系の検定や情報処理の資格も就職には多少有利かもしれませんが仕事上有利にはなりませんからあとからとる人は少ないでしょう。
実務で役立つのは自動車の運転免許くらいですね。
    • good
    • 0

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

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

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

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

Q初心者がC#を習得する場合の難易度について

派遣で働く30代後半女性です。
育休明けの派遣先として、ソフト系の会社を紹介されました。

サポートデスク(メールでの応対メイン)の仕事で未経験者可との事だったのですが、
いざ働きだしたらC#の入門書を渡され、勉強することになりました。
どうやら会社が企業向けに販売しているソフトの
カスタマイズをする部署のようで、サポートデスクの仕事もやるけど
ある程度の知識も持って欲しいしいずれプログラムも打って欲しいみたいです。

私は情報系の教育は受けておらずプログラミングは全くの素人です。
excelでsumを使って家計簿を作るくらいの能力しかありません。
今はC#の入門書を読んでいますが専門用語や概念がとても難しく、
周囲の人に聞きながら少しづつ読み進めている状況で、このまま続けて
理解なんてできるのか、プログラムを打つことができるのか、全く見当がつきません。

本当に無理なら派遣先を変えることもできますが、今のところ派遣先もゆっくり
勉強してくれていい、残業なし、子供の体調で急な休みなども了承してくれており
職場環境はいい方だと思います。

ただC#のことが全くわからず、先が見えないのがストレスになっています。
ざっくりでいいので難易度や「C#はこんな感じ」というのを教えていただきたいです。
よろしくお願いします。

派遣で働く30代後半女性です。
育休明けの派遣先として、ソフト系の会社を紹介されました。

サポートデスク(メールでの応対メイン)の仕事で未経験者可との事だったのですが、
いざ働きだしたらC#の入門書を渡され、勉強することになりました。
どうやら会社が企業向けに販売しているソフトの
カスタマイズをする部署のようで、サポートデスクの仕事もやるけど
ある程度の知識も持って欲しいしいずれプログラムも打って欲しいみたいです。

私は情報系の教育は受けておらずプログラミングは全くの素人...続きを読む

Aベストアンサー

それほどあせらなくてもよいと
思います。A^^;)

こう言うのも失礼かもしれませんが、
プログラミング能力を期待して
いるようには思えません。
それを期待するなら、プログラマーを
雇えばよい話です。

職場のニーズが本当にズレてきていて、
サポートデスクの仕事とのギャップが
大きくなるのなら、派遣元にでも相談
すればよい話です。

プログラミング言語の入門書を渡すと
いうのが、確かに浅はかといった感じ
ですね。

どちらかといえば、サポートする
ソフト製品などがどんなものなのか
理解を深める所から入るべきだと
思います。

周囲の人たちはたぶん長い時間それに
携わっているので、どんなものかを
ある程度知っているわけです。
そうするとその前提ありきでどんな
仕組みで動いてるかが、入り口に
なってしまっているんだと思います。

せっかくの良い職場環境なんですから、
少し悩みを周囲に相談されてはどう
ですかね?

そうしたソフトウェア会社の担当部署
にありがちな話ですが、それだけでは
ない様々な役割が必要であることが、
分かっている人がいると思います。

例えば、サポートデスクの対応で、
正確に業務内容やソフトの操作方法が
把握できているならば、顧客の言っている
ことにどんな誤解があるのか?
逆にどんな不具合があるのかを
正確に把握できるようになります。

そうすることで開発(カスタマイズ?)
に専念している人がそこに割く時間を
減らせるわけです。

実際にものを作る能力(プラグラマ)も
必要かもしれませんが、それ以前に
どんなことが実現できる、できないを
明確にすることが重要だし必要なのです。

それは実際の動きであったり、
実現できる内容です。
それが把握できるだけで、開発部門でも
かなりの戦力になってしまうと思います。

ということで…

C#のプログラミングの技術は確かに
それなりに使える技術でしょうが、
奥行きが深く、幅も広いので難易度と
いったら、『難』でしょう。
しかしどんな言語を習得するにも
それなりの実践経験をしないと
理解が深まりません。
本を読めば習得できるというものでも
ないと思います。

C#を学習以前に実際にサポートデスク
でサポートする製品自体を知りたいと
相談してみてはどうでしょう?

職場の雰囲気がよいなら、やんわりと
したアプローチを心がけて欲しいと
思います。

因みに私もその業界は長いです。A^^;)
職場も千差万別です。
あまり思いつめずに気楽にいきましょう!
がんばってください。

それほどあせらなくてもよいと
思います。A^^;)

こう言うのも失礼かもしれませんが、
プログラミング能力を期待して
いるようには思えません。
それを期待するなら、プログラマーを
雇えばよい話です。

職場のニーズが本当にズレてきていて、
サポートデスクの仕事とのギャップが
大きくなるのなら、派遣元にでも相談
すればよい話です。

プログラミング言語の入門書を渡すと
いうのが、確かに浅はかといった感じ
ですね。

どちらかといえば、サポートする
ソフト製品などがどんなものなのか
理解を深める所か...続きを読む

Qプログラミング能力認定試験はどのくらい優遇されるの?

私は、インターネット上で、「プログラミング能力認定試験」が存在する事を知りました。

現在私は、プログラミングとは無縁の事務職をやっており、独学で C言語の勉強を行っております。
将来的にはプログラマへの転職も真剣に考えているのですが、その時に自分を認めて(採用して)もらえるようなモノを持ちたいと考えております。

そこで、
1>>「プログラミング能力認定(1~3級)」が就職にどの位有利なのか?
2>>また、専門学校に通われた方たちは、一般に、卒業時点で何級取得程度の実力を身につけているものなのか?

の2点について教えていただきたく思います。
質問にアバウトな点があり、大変申し訳ございませんが、宜しくお願いいたします。

Aベストアンサー

(1)採用枠が競争になった場合に有効材料となるでしょう。また面接が有る場合のアピールポイントになるでしょうね。
(2)学習内容に左右されますが、所詮基礎レベルでしょう。
 実戦では、実務では基本ができている程度にしか認識されないと思います。
 実戦では、開発環境や要求定義が様々な為、資格による差は少ないです。重要なのは今後の為に実戦でどこまで自分を向上できるかですね。その前に雇用されるのは必須条件ですけどね。

QDispose()は、どんな時に使うのですか?

VB2005を使っていますがなかなか覚えられません。
Dispose()は、どんな時に使うのですか?
その必要性、背景から知りたいです。

Aベストアンサー

Disposeというか,System.IDisposableインターフェイスについてになります。

まず,System.IDisposableを調べると,クラスのsummaryに,
「割り当てられたアンマネージ リソースを解放するメソッドを定義します。」
とあります。
MSDN: IDisposable インターフェイス (System)
http://msdn.microsoft.com/ja-jp/library/system.idisposable(VS.80).aspx
元々は,.NET Frameworkが管理しないリソース,つまりはメモリ以外のリソースを解放する共通のインターフェイスとして用意されました。
つまり,リソースAではCloseを,リソースBではDiscardを,etc. のようなことが無いように,IDisposable.Disposeに一本化したものです。
C#では当初(1.0)から,VBでは8.0 (2005)から,Usingステートメントが追加されていますが,これはIDisposableによるリソースの管理を簡易にするための物です。

ただし,上記は.NET Framework 2.0のMSDNです。
故意に2.0を持ち出したのは意味がありまして,3.5になると以下のように変わっています。
「割り当てられたリソースを解放するメソッドを定義します。」
MSDN: IDisposable インターフェイス (System)
http://msdn.microsoft.com/ja-jp/library/system.idisposable(VS.90).aspx
つまり,元々はアンマネージリソースを想定していたが,現在ではマネージリソースでも使うことが存在しているようです (例示ができないので曖昧)。


さて,IDisposableの使い方についてです。

[呼び出し側として使う場合]
こちらの方が当然多いわけですが,
・自分が管理責任を持っているオブジェクト
基本的にはNewしたオブジェクトですが,System.Net.WebRequest.GetReseponseのように,管理がまわってくるオブジェクトも存在します。
これに関しては,理由がない限り使い終わったら速やかにIDisposable.Disposeを呼び出すべきです。
・自分が管理責任を持っていないオブジェクト
System.Windows.Forms.Control.Paintイベントのe.Graphicsなどが該当します。
これに関しては,IDisposable.Disposeを呼び出してはいけません。

[IDisposableを実装する場合]
実はこれも結構起きたりします。
・自分がアンマネージリソースを扱っている場合
そのリソースを解放する必要があるのであれば,IDisposableを実装する必要があります。
MSDN: アンマネージ リソースをクリーンアップするための Finalize および Dispose の実装
http://msdn.microsoft.com/ja-jp/library/b1yfkh5e.aspx
・フィールドがIDisposableを実装している場合
これは,呼び出し側として使う場合の管理責任を持つかどうかに依存します。
持つならば,IDisposableを実装し,IDisposable.Dispose内でフィールドのIDisposable.Disposeを呼び出す必要があります。


参考になりそうな資料ですが,
MSDNマガジン: CLR 徹底解剖: IDisposable について
http://msdn.microsoft.com/ja-jp/magazine/cc163392.aspx
GDNJ: GotDotNet Japan 掲示板 / スレッド: IDisposable/Dispose/using に関して
http://www.microsoft.com/japan/msdn/community/gdn/ShowPost-4718.htm
などがあります。後者は2003年,つまりは.NET Frameworkの初期の頃の議論ですが,結構重要な議論だと思います。
# ログの破損が惜しいところです。

Disposeというか,System.IDisposableインターフェイスについてになります。

まず,System.IDisposableを調べると,クラスのsummaryに,
「割り当てられたアンマネージ リソースを解放するメソッドを定義します。」
とあります。
MSDN: IDisposable インターフェイス (System)
http://msdn.microsoft.com/ja-jp/library/system.idisposable(VS.80).aspx
元々は,.NET Frameworkが管理しないリソース,つまりはメモリ以外のリソースを解放する共通のインターフェイスとして用意されました。
つまり,リソ...続きを読む

QC、C++、C#の関係について

現在C#で簡単な開発しています。

今度就く業務ではC++が必要だから、勉強しておくようにと言われました。
C#を使っていながら、恥ずかしい質問なのですが・・・

 ・よく聞く「VC++」と「C++.Net」は、違うのでしょうか?
  正式名称が「Microsoft Visual C++ .Net」なので、同じような気がするのですが。
  私の使用PCには「Microsoft Visual Studio .Net 2003」が入っています。

 ・C言語とC++との違いは何なのでしょうか?
  両者の関係が分かりません。
  C++を勉強する場合、C言語というのは飛ばしてよいのでしょうか?
  C#を習得するときは、C言語を勉強しませんでした。
  C++で開発とか、C#で開発とか言いますが、「C言語で開発」とは言わないですよね?

C#とC++がどれほど違うのかが不安です。
質問がたくさんになってしまいましたが、よろしくお願いいたします。

Aベストアンサー

 ・よく聞く「VC++」と「C++.Net」は、違うのでしょうか?

文脈により違うものをさす可能性もあります。(同じ可能性もありますが、大抵は違うかも…)

「VC++」は、Microsoft社のC++コンパイラ製品名(の略称)であって、言語ではないです。
但し、特にMFCでの開発をさして(C++と区別して)「VC++」と表現する方もいます。

そして、「VC++」は、「非.NET platformのC++(標準C++)」と、
.NET platform用のManaged C++(MSの独自拡張。後に整理されてC++/CLIとして規格化)の*両方に*対応してます。

C++.NETというと、恐らくはManaged C++(MS独自拡張)か、
C++/CLI(これはECMAで独立した言語として標準化)をさすと思われます。
# Managed C++とC++/CLIも微妙に違う言語です。

一報、単にVC++と言う場合、標準C++(+MFC)の可能性が高いです。


> 私の使用PCには「Microsoft Visual Studio .Net 2003」が入っています。

これは、.NET framework上のManaged C++と標準C++の両方に対応した製品です。

 ・C言語とC++との違いは何なのでしょうか?

C言語は、ISO/IEC9899で標準化された言語です。
C++は、C言語をベースに開発された別の言語です(ISO/IEC14882)。
そして、.NET framework用のC++/CLI (ECMA-372)も別の言語です。

CとC++の関係を例えるなら、ラテン語と英語とかみたいなものでしょうか。
(ベースでもあり、参考にはなるが、似て非なるもの)

> C++を勉強する場合、C言語というのは飛ばしてよいのでしょうか?

知っているとお得です。知らないと将来「はまる」可能性もあります。
ですが、最初に勉強するべきかといわれると、議論が分かれるところだと思います。

> C++で開発とか、C#で開発とか言いますが、「C言語で開発」とは言わないですよね?

「C言語で開発」とも言います。
(PCアプリだと「C言語+Win32」ということが少ないだけで、組込業界等に行くと普通にあります。別言語ですし、C言語のシェアも高いので)

> C#とC++がどれほど違うのかが不安です。

根本のOOPとかは共通ですが、C++の方が格段に複雑で難易度が高いです。
C++⇒C#は比較的容易ですが、逆は結構面倒だと思います。

C#がオートマ車の運転なら、C++はF1カーのようなもの。
クラッチの切り方から注意しないとエンストしたり、事故ります。
その代わり極めれば性能が出ます。(反面、極めるのは困難です)

 ・よく聞く「VC++」と「C++.Net」は、違うのでしょうか?

文脈により違うものをさす可能性もあります。(同じ可能性もありますが、大抵は違うかも…)

「VC++」は、Microsoft社のC++コンパイラ製品名(の略称)であって、言語ではないです。
但し、特にMFCでの開発をさして(C++と区別して)「VC++」と表現する方もいます。

そして、「VC++」は、「非.NET platformのC++(標準C++)」と、
.NET platform用のManaged C++(MSの独自拡張。後に整理されてC++/CLIとして規格化)の*両方に*対応してます。

C++.NET...続きを読む

QC# ログイン画面からメイン画面への画面遷移について

C# ログイン画面からメイン画面への画面遷移について

C#での画面遷移に関する質問です。
ログイン画面からメイン画面に遷移する場合、どの様な方法で遷移すれば良いのか
迷っています。

現状では以下の方法で遷移していますが、より適切な方法をご存じの場合
ご教示下さい。

(1)Program.csにおいてApplication.Run(new LoginDialog())で
ログイン画面を表示

(2)ログインボタンクリックメソッドでログイン成功時、
メイン画面インスタンスを生成・表示し、ログイン画面を非表示。
(後でログイン画面を再表示することがある為)

---------------------------------------------------------------------
private void LoginButton_Click(object sender, EventArgs e)
{
   /* ログイン処理 */

   //ログイン成功時
   //メイン画面インスタンス生成
   MainForm mainForm = new MainForm();
   //ログイン画面インスタンスを代入
   mainForm.loginForm = this;
   //メイン画面表示
   mainForm.Show();
   //ログイン画面非表示
   this.Visible = false;
}
---------------------------------------------------------------------

また上記の方法だとメイン画面を閉じても、アプリケーションは終了しない為
メイン画面の閉じるボタンを押した場合に以下の処理を行っています。

---------------------------------------------------------------------
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
   //ログイン画面クローズ
   loginForm.Close();
}
---------------------------------------------------------------------

以上、宜しくお願いします。

C# ログイン画面からメイン画面への画面遷移について

C#での画面遷移に関する質問です。
ログイン画面からメイン画面に遷移する場合、どの様な方法で遷移すれば良いのか
迷っています。

現状では以下の方法で遷移していますが、より適切な方法をご存じの場合
ご教示下さい。

(1)Program.csにおいてApplication.Run(new LoginDialog())で
ログイン画面を表示

(2)ログインボタンクリックメソッドでログイン成功時、
メイン画面インスタンスを生成・表示し、ログイン画面を非表示。
(後でログイン画面を再表示す...続きを読む

Aベストアンサー

#2です。
最初にログイン画面のみを表示したいなら
メイン画面のForm_menu_Load(loadイベント処理)
の中で、ログイン画面をモーダル表示し、
NGならメイン画面のcloseのほうがよいかも知れません。

Q目標管理シートの書き方について

現在駆け出しのプログラマですが、このたび会社で半年毎に目標管理シートを記載し、下記についてどういう目標を立て実現をめざすかということを記述する事になりました。

1. 利益率の向上
2. 納期の厳守
3. 不良の再発防止
4. 品質の向上
5. 会社業務の生産性の向上
6. 個人の技術力の向上

そして私が思うに下記のような制約があるのですが、この状況下で適切な目標とはどういうものかというのが分からなかった為、アドバイスいただける方がいらっしゃいましたら、ご教示の程よろしくお願いします。

1. 半年毎に数値で評価する事が可能な目標にする必要があると思います(例え数年かかる目標でも、半年毎にその進捗状況が数値で評価できる目標にする必要があると思います)。
2. 一応業務のメインはプログラミングですが、設計などを行なう可能性もあり、半年の間にどのような業務を行なうかは目標設定時には分かりません
(大まかに絞れば、ソフトウェア開発ということになりますが、例えばプログラミング色の強い目標を設定した所、実は業務でプログラムをやることがほとんどなかったという可能性もあり、あまり狭い範囲に絞った目標の場合、自分でコントロールできない所で目標が達成できなくなる可能性があります)。
3. プログラミング言語はその時々で適切と思われる言語が決定された状態で指示される為、半年の間にどのような言語を使用するかは目標設定時には分かりません。

なお、アドバイスについては、具体的な目標、及びその目標の達成基準をご教示いただいてももちろん大丈夫ですし、こういうサイトがあるですとか、こういう考え方があるですとかというような情報でも大丈夫です。
アドバイス等によっては、特定の会社では使えるものの、特定の会社では使えないことなどもあると思いますが、できるだけ多くの意見をいただけると参考になり助かります。

また、情報不足等があり、補足が必要でしたら、その旨ご指摘いただければと思います。

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

現在駆け出しのプログラマですが、このたび会社で半年毎に目標管理シートを記載し、下記についてどういう目標を立て実現をめざすかということを記述する事になりました。

1. 利益率の向上
2. 納期の厳守
3. 不良の再発防止
4. 品質の向上
5. 会社業務の生産性の向上
6. 個人の技術力の向上

そして私が思うに下記のような制約があるのですが、この状況下で適切な目標とはどういうものかというのが分からなかった為、アドバイスいただける方がいらっしゃいましたら、ご教示の程よろしくお願いします。

1. 半年毎...続きを読む

Aベストアンサー

コンピュータシステム開発会社に勤務しております。
うちの会社も、通年の目標管理が設定され、半期ごとに、個人評価、上司との面談を行っています。
質問者様の勤務する会社が自社開発ソフトか、業務委託型なのかにもよりますが、業務委託型として、私なりの
考えです。
1.利益率の向上
   顧客先との契約では、個人の単価が関係してきます。個人の単価を上げるためには、顧客先からの評価を
   高めること。つまり、業務知識に精通することです。
2. 納期の厳守
   当たり前なことですが、時として守れないことがあります。メンバーのスキル不足。納期厳守の意識不足。
   あとは、業務開始時に仕様が明確になっていないため、作業工程に戻りが発生すること。また、追加仕様を
   無計画で受け入れてしまうことです。
   開発当初の仕様を明確にする。レビューを繰り返し実施する。仕様変更・仕様追加が発生する場合は、納期を
   どうするか、あらかじめ決定しておくこと。
3. 不良の再発防止
   不良(不具合)の原因としては、仕様もれ、仕様の理解不足・テストケース不足が考えられます。そこで、各工程で
   レビュー(検討会議)を繰り返すこと。テストについても、テスト仕様書のレビュー、テスト結果報告書のレビューを実施
   します。
   万一、不良があった場合、それを記録として残すこと。
4. 品質の向上
   不良を出さないこともありますが、ユーザー側の立場に立った、仕様の検討・提案ができるか?
5. 会社業務の生産性の向上
   会社で、過去に開発したシステムで、再利用・2次利用できるものを活用し、作業工数を減らすことです。
   無駄な残業をしないことも、当然ですね。
6. 個人の技術力の向上
   コンピュータ関連の資格を取得すること。会社として、共通して使用しているツール・DBなどの知識を深めること。
   新規技術(クラウドなど)の情報収集に努めること

参考になれば幸いです。
もうすぐ50のSEでした。
  

コンピュータシステム開発会社に勤務しております。
うちの会社も、通年の目標管理が設定され、半期ごとに、個人評価、上司との面談を行っています。
質問者様の勤務する会社が自社開発ソフトか、業務委託型なのかにもよりますが、業務委託型として、私なりの
考えです。
1.利益率の向上
   顧客先との契約では、個人の単価が関係してきます。個人の単価を上げるためには、顧客先からの評価を
   高めること。つまり、業務知識に精通することです。
2. 納期の厳守
   当たり前なことですが、時として守...続きを読む

Q有無、要否、賛否、是非、可否、当否…これらの言葉について

<A>
有無=あるかないか
要否=必要か否か
賛否=賛成と反対
是非=よいことと悪いこと
可否=よいことと悪いこと
当否=正しいか正しくないか。適切かどうか。


1.上記Aのような種類の言葉について、もっと知りたいので
他に何かあれば教えて下さい。

2.Aのような種類の言葉の事を何と呼ぶんでしょうか??

3.Aのような言葉を、どういう風に使えばいいのですか?
例文を示して頂けないでしょうか。

4.「是非」「可否」「当否」の意味は、全部同じですか?
違うとすれば、どのように違うのでしょうか?

Aベストアンサー

使用例

要否=要否を問う

賛否=賛否両論、賛否を問う
是非=是非(良し悪し)を論ずる。 副詞としての用法、是非参加ください。
可否= 可否(良し悪し)を論ずる。可否(賛否)を問う。
当否=ことの当否(よしあし、あたりはずれ)は別として、

是非と可否は同じ意味です。
当否も上の二つと同じ意味があるものの、それが当てはまっているかどうかという意味もあるので全く同じようには使えないでしょう。
二文字で相反する意味を表す漢語独特の表現法ですが、特に名前があるかどうかわかりません。類語として、否応(いやおう)があります。意味は断ることと承知すること。使用例、否応なしに買わされた(無理やりに買わされた)

Q文字列として"(ダブルコーテーション)を表示させる方法

こんにちは。文字列として、ダブルコーテーションを表示させるには、どうすればよいのか教えてください。m(__)m


例えば、
<font size="2">あいうえお</font>

というタグの「あいうえお」の部分が、セルA1にあった場合、

="<font size="2">"&A1&"</font>"という表示にしたいのです。

"2"のダブルコーテーションも文字列として表示させるには、どうすればよろしいのでしょうか。

教えてください。よろしくお願い致します。

Aベストアンサー

こんにちは~

表示形式は 「標準」 のままで、
ダブルコーテーションを、ダブルコーテーションで囲んでください。

""2""

="<font size=""2"">"&A1&"</font>"

としてみてください。

QDoEvents関数って何?

こんにちは。

VBAやプログラミングに詳しい皆様に
教えていただきたい質問があります。

cells(1,1)からcells(5000,1)までの値を消去するときに
処理の進行状況を表示するためにuserform上にプログレスバーを表示したいと思います。

そこで下記のようなコードを入力しました。

userform1.show
for i =1 to 5000
cells(i,1)=""
userform1.progressbar1.value=i/5000*100
next i
unload userform1

しかしこれだとuserformの背景が真っ白になってしまい
ラベルの文字も消えてしまいます。
そこで「EXCEL VBA パーフェクトマスター」という本を見たら

for i =1 to 5000
cells(i,1)=""
userform1.progressbar1.value=i/5000*100
DoEvents
next i
unload userform1
と入力すれば解決することがわかりました。

しかし「DoEvents」についてあまり詳しく書いていなかったのでDoEvents関数をヘルプで見ると、
「発生したイベントがオペレーティング システムによって処理されるように、プログラムで占有していた制御をオペレーティング システムに渡すフロー制御関数です。」

と書いてあるのですが正直、書いてあることがよくわかりません。

どなたかDoEvents関数について、
もう少しわかりやすく教えていただけませんか。
それから、最初に書いたコードで実行すると
ユーザーフォームの背景が真っ白になってしまう原因も
教えていただけませんか?

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

こんにちは。

VBAやプログラミングに詳しい皆様に
教えていただきたい質問があります。

cells(1,1)からcells(5000,1)までの値を消去するときに
処理の進行状況を表示するためにuserform上にプログレスバーを表示したいと思います。

そこで下記のようなコードを入力しました。

userform1.show
for i =1 to 5000
cells(i,1)=""
userform1.progressbar1.value=i/5000*100
next i
unload userform1

しかしこれだとuserformの背景が真っ白になってしまい
ラベルの文字も消えてしまいます。
そ...続きを読む

Aベストアンサー

簡単に言うと、
OS に制御を渡すってことです。(ヘルプそのまんま)
時間が掛かるループ処理などの場合、ループが終わるまで制御は独占されてしまいます。
ですのでループ中は OS や Excel そのものにも再描画をさせる暇さえ与えません。
途中に DoEvents を入れると制御が OS に渡るので、OS は溜まっていた処理をそこで行うことができます。
結果、フォームの再描画などが行われることになります。

注意点ですが、
Private Sub CommandButton1_Click()
  Dim i As Long

  For i = 1 To 50000
    DoEvents
    Cells(i,1) = ""
  Next i
End Sub

Private Sub CommandButton2_Click()
  MsgBox "hoge"
End Sub

っていうフォームのコードがあった場合、
DoEvents を入れることによって、ループ中にユーザーがCommandButton2 を押すことによって CommandButton2 のクリック イベントも動いちゃいます。
CommandButton1 のクリック イベントではループの前に
CommandButton1.Enabled = False
CommandButton2.Enabled = False
を書いてフォーム上の CommandButton を無効にしておき、ループが終わったら
CommandButton1.Enabled = True
CommandButton2.Enabled = True
と書いて CommandButton を有効に戻してください。

これを工夫すれば、CommandButton2 で CommandButton1 のループを途中キャンセルする処理もすることができます。

Private Canceled As Boolean

Private Sub CommandButton1_Click()

  CommandButton2.Enabled = False

  Dim i As Long
  For i = 1 To 50000
    DoEvents

    If Canceled = True Then
      MsgBox "キャンセルしました"
      Exit Sub
    End If

    Cells(i, 1).Value = ""
  Next i
End Sub

Private CommandButton2_Click()
  Canceled = True
End Sub



コードの行頭にあるスペースは見易さのために全角スペースで作成していますので、これをこのままコピペするとエラーになるかもしれません。
コピペするなら行頭の全角スペースを半角スペースに直してください。

簡単に言うと、
OS に制御を渡すってことです。(ヘルプそのまんま)
時間が掛かるループ処理などの場合、ループが終わるまで制御は独占されてしまいます。
ですのでループ中は OS や Excel そのものにも再描画をさせる暇さえ与えません。
途中に DoEvents を入れると制御が OS に渡るので、OS は溜まっていた処理をそこで行うことができます。
結果、フォームの再描画などが行われることになります。

注意点ですが、
Private Sub CommandButton1_Click()
  Dim i As Long

  For i = 1 To 50000
...続きを読む

QSELECTで1件のみ取得するには?

こんにちわ。
いまORACLE9iを使用している者です。

ACCESSでは
SELECT TOP 1 項目名 FROM テーブル名
ORDER BY 項目名;
で並べ替えたデータ群のうち,先頭の1件だけを
取ることができますが,
ORACLEでそのような機能(SQL)はあるでしょうか?
教えてください。
よろしくお願いします。

Aベストアンサー

order by と rownum を併用する場合は注意が必要です。

[tbl01]
cola | colb
------------
1000 | aaaa
1001 | bbbb

というデータがある場合、
select cola from tbl01 where rownum < 1 order by cola desc;
とすると、「1001」ではなく、「1000」が返されます。
これは、order by の前に rownum < 1 が適用されてしまうからです。

解決するには、
select aaa from (select cola aaa from tbl01 order by cola desc) where rownum = 1;
とすれば良いです。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報