redfox63 の回答履歴

全3318件中221~240件表示
  • VB.NETでPictureBox間で論理演算

    VB6で作成したツールをVB2008に移植中に画像処理で躓きました。 BitBlt trghDC, trgLeft, trgTop, srcWidth, srcHeight, srchDC, 0, 0, vbSrcAnd こんな感じでPictureBoxから別のPictureBoxへAND処理をしてコピーをしたいのですが、 VB.NETではBitBltを使えないとのことで、代わりの方法を探したのですが、単なるコピーばかりで論理演算つきのサンプルが見つかりません。 何か方法はないでしょうか。 1ドットごとに処理してコピーでは遅すぎて話にならないので×です。 ご教授よろしくお願いします。

  • VB2008 Notifyiconについて

    VB2008でNotifyicoを使ってタスクトレイに表示したアイコンの上にマウスを3秒くらい乗せたらバルーンを表示させたいのですけどどのようにするのですか? わかる方、ご教授ください

  • VBAの変数の型について

    VBAの変数の型について VBA初心者です。 下記のようにして背景に色を付けようと思ったのですが、 文字列型の変数名では、型が違うとエラーが出ます。 ただ、事情により、文字列型でしか色情報を取得できないため、 VBA内部で型の変更をして、上手く処理出来ないかと考えています。 文字列型から色名に対応する型への変更は、出来るのでしょうか? --------------------------------------- .BackgroundPatternColor = 文字列型変数名 --------------------------------------- 現在は、諦めて、下記のようにして対応しています。 --------------------------------------- If (bgColor = "黄") Then .BackgroundPatternColor = wdColorYellow End If --------------------------------------- よろしくお願い致します。

  • visual C++ 2010 Express

    いつもお世話になっております。 C++の勉強をするため、visual C++ 2010 Expressをインストールしました。 はじめはビルド後、コマンドプロンプトが出てきて、実行結果を表示し、 終了する場合は何かキーを押してください のメッセージが出てきて終了しました。 ですが、昨日の夜からは実行結果が表示されなくなりました。 *正確には一瞬コマンドプロンプトが開きますが、すぐ消えます。   また、何かしらの値を与えてそれを処理するプログラムを作成した場合、   入力する画面はちゃんとでております。   たとえば、ある2つの数を入力すると、それを足し算して結果を表示させるプログラムの場合   2つの数を入力するまではちゃんと表示しておりますが、結果を表示するときに落ちます。 コンパイルエラーは出てなく、自分でコマンドプロンプトを開き、対象ファイルを実行すると ちゃんと結果がでてくるので、環境設定かと思いますが、何が原因か不明です。 製品登録も済ませてあります。 ご存知の方がいらっしゃいましたら、ぜひご教授お願いいたします。

  • 「ファイルが無い」というエラー

    C#で、開発環境はおそらくVisualStudio2008、OSは7です。 数百万回程度ファイルを作成、書き込み、読み込み、消去を繰り返すと、 最初は問題ないのですが、 そのうち「ファイルがありません」という内容のエラーが出ます。 フォルダを見ると確かにありません。 file.existsメソッドを入れて ファイルが存在しない場合にはその処理をしないようにしても、 何事もなく通過するにもかかわらず、やはりエラーになります。 CPU処理速度がハードディスク書き込み速度を上回っているからかと思い、 Console.writeで無駄な出力を行い、処理を遅くしてみましたが、 状況は変わらないようです。 どのように対処したらよいでしょうか? なお、「数百万回程度ファイルを作成、書き込み、読み込み、消去を繰り返」さず、 関数間で直接データをやりとりすることもおそらく可能ですが、 今後のことを考え、とりあえずそういう実装になっています。

  • 同文字列の削除方法

    vb6でプログラムを書いているのですが,同文字列がある場合削除し出力するプログラムの書き方がわかりません・・・. 例えば,se a sa a se aa →se a sa aa という様に出力したいです.(一つ一つの文字列の後には入力・出力共に半角スペースがあります.) 宜しくお願いします.

  • VB2010の、Formを開く動作に関する質問です

    VB2010のFormについてお聞きしたいことがあります。 例えばForm1とForm2の2つがあるとして、 ・Form1上のボタンをクリック後Form2が表示される ・Form2を表示後Form1は自動で閉じられる。 この様な事をするにはどの様に行えばよろしいでしょうか? 試しに、 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click   Form2.Show()   Me.Close() End Sub と、してみたのですが Form2が表示された直後に1と2両方消えてしまいました。 改善方法を教えていただけると嬉しいです。 よろしくお願いいたします。

  • 画像処理 ビットマップ ダブルバッファリング

    「猫でもわかるWindowsプログラミング」を参考に、ビットマップを表示するプログラムを作っています。 下記ソース(WM_PAINT部分のみ抜粋)のような感じで、 読み込んだビットマップをダブルバッファリングを用いて表示させたいのですが、 何も表示させることができず、困っております。 LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp ) {   HBITMAP hBmp;   BITMAP bmp_info;   HDC hDC, hDC_mem;   PAINTSTRUCT ps;   int w=0, h=0;   switch (msg) { case WM_PAINT:   hDC = BeginPaint(hwnd,&ps);   hDC_mem = CreateCompatibleDC(hDC);   hBmp=LoadBitmap(hInst, TEXT("MYBMP"));   hBmp = (HBITMAP)LoadImage(hInst, TEXT("MYBMP"), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR); GetObject(hBmp, (int)sizeof(BITMAP), &bmp_info); w = bmp_info.bmWidth; h = bmp_info.bmHeight; SelectObject(hDC_mem, hBmp); BitBlt(hDC, 0, 0, w, h, hDC_mem, 0, 0, SRCCOPY); DeleteDC(hDC_mem); DeleteObject( hBmp ); EndPaint( hwnd, &ps ); break; } } リソースですが、下記のように bitmap1.bmpを指定しており、画像はもちろんフォルダ内に入れ、 読み込める状態にはしています。   //   // Bitmap   //   MYBMP BITMAP "bitmap1.bmp"   #endif // 日本語 resources しかし、hBmpの戻り値を調べると NULL の値が入っています。当然画像は表示されません。 当方、Microsoft visual studio 2005を使っておりますが、このプロジェクトは、 Win32コンソールアプリケーション⇒Windowsアプリケーション で作成はせず、 Win32コンソールアプリケーション⇒コンソールアプリケーション で作成していますので、 ここが問題になっているのでしょうか? できれば、コンソールアプリケーションで作成したいですが、LoadImage関数は使えないのでしょうか? それとも他に問題点があるのでしょうか? 以前は動画処理をしており、SetDIBitsToDevice関数を使って配列の中身を指定し、画像をウィンドウ上に表示していました。 しかし、画像のちらつきが気になったため、ダブルバッファリングに改良しようとし、 調べてみたところ、ビットマップを用いるやり方が一般的なようでした。 そこで、まずはビットマップの表示をさせるプログラムをつくってみようと思ったのですが、つまずいている状態です。 環境は、 Microsoft Windows XP Home Edition Version2002 Service Pack 3 Pentium(R) 4 CPU 2.80GHz 1.0GB RAM Microsoft visual studio 2005(有料) です。 何かアドバイスをよろしくお願いします。

  • 変数の型について

    お世話になります。 Oracle11gと .NET C#で開発をしております初心者です。 オラクルから得たデータをSPREADに表示しており、 そして、表示した表の「合計」列で0より大きい数字のセル に色を付けようとしているのですが、 実は、データの中身は違うのですが、表形式が全く同じ シートがsheet2からsheet5まで全部で5枚有り、下記の 様な記述を1回で済ませたいと思っており、sheet1の部分を 変数化してfor{ }でループさせようとしたのですが、 変数化させる型が分かりません。 stringの変数でやろうとしたらエラーになりました。 どなたかご親切な方、ご教示頂きたく宜しくお願い致します。               記 int gouKei = Spread.FindColumnIndex(sheet1, "合計");   for (int i = 0; i < sheet1.Rows.Count; i++)     { if (int.Parse(sheet1.Cells[i, gouKei].Text) > 0) {         sheet1.Cells[i, gouKei].BackColor = Color.LightCyan;       }     }

  • VB2010の、Formを開く動作に関する質問です

    VB2010のFormについてお聞きしたいことがあります。 例えばForm1とForm2の2つがあるとして、 ・Form1上のボタンをクリック後Form2が表示される ・Form2を表示後Form1は自動で閉じられる。 この様な事をするにはどの様に行えばよろしいでしょうか? 試しに、 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click   Form2.Show()   Me.Close() End Sub と、してみたのですが Form2が表示された直後に1と2両方消えてしまいました。 改善方法を教えていただけると嬉しいです。 よろしくお願いいたします。

  • VB6で、一次元配列と二次元配列の相互コピー

    VB6で、一次元配列と二次元配列の相互コピーをしたいです。 (1)元々下記のような宣言をもつ配列がありました。 Public Type TKey no As String id As String code As String atr() As String End Type Public Type tr Key As TKey atr() As String abc As Boolean End Type Public gtr() As tr (2)コピー用に、下記のような二次元配列用宣言をつくりました。 Public Type TKey2 2no As String 2id As String 2code As String a2tr() As String End Type Public Type 2tr Key22 As TKey2 atr22() As String abc22 As Boolean End Type Public g2tr() As 2tr (3)  (1)から(2)にデータを複製したり、 (4)  (2)から(1)にデータを複製したいです。 今は、下記のように面倒くさいことをしています。 dim gtr(maxcnt) ReDim Preserve g2tr(500, maxcnt) ループ g2tr(cnt, i).Key22.2code = gtr(i).Key.code ・・・(3) gtr(i).Key.code = g2tr(j, i).Key22.2code ・・・(4)       今は上記を全ての宣言の配列に実行しています。 なにかもっと効率のよい方法はないでしょうか。 (1)の配列は、1~500くらいはあり、不定です。

  • 二分法で関数の最小値を求める

    題名通りのプログラムを組んだのですが、どうしてもうまくいきません。どこが間違っているのでしょうか?教えてください。 以下プログラム #include< stdio.h > #include< stdlib.h > double minfx( double (*func)(double x), double a, double b ) { if( b-a < 0.0001 ) { if(func(a)>func(b)) { return func(b); } else { return func(a); } } else { if(func(a)>func(b)) { a = (a+b)/2; } else { b = (a+b)/2; } minfx(func,a,b); } } double f1(double x) { return (x-1.0)*(x-1.0); } double f2(double x) { return 3.0*x*x*x*x-4.0*x*x*x-12.0*x*x+10.0; } void main() { double ans1,ans2; ans1 = minfx( f1, 0.0, 5.0 ); ans2 = minfx( f2, 0.0, 5.0 ); printf("関数f1の最小値:%lf \n", ans1); printf("関数f2の最小値:%lf \n", ans2); system("PAUSE"); } これを実行するとf1とf2の値が0.000000といった感じで値が代入できていないと返されます。流れ的には合っていると思うのですが…なお、プログラムの形はできるだけそのままで、関数minfx内のみ変更する形でお願いします。自分としてはそこ以外に原因が考え付かないので…。

  • VS2010 バイナリデータ 初心者

    VBで処理を作成していたのですが、バイナリデータを編集する処理を追加する事になりました。 VC++なら、上手くデータをコンバート出来たのでVC++をDLL化して作成中です(もともとは6.0のVC++のプログラムです)。 新しくプロジェクト(VC++)を作成(WIN32プロジェクト)しVBから作成したDLLを呼び出す所までは上手く出来たのですが、肝心のバイナリデータをOPENする所が上手く行きません。 VC++の方でCFileを使用する際に#include <afx.h>でエラーになってしまいます。 先ほども投稿したのですが、結果惨敗だったので、再度質問するしだいですw バイナリのファイル:kalrt.bat #include <afx.h> wchar_t* pFileName; pFileName = L"kalrt.bat"; CFile fr;  ← エラー char buff[1000]; if (!fr.Open(pFileName, CFile::modeRead,NULL )){   while(fr.Read(buff,0x800)){ // ---処理--- } CFileを使用する場合は、MFCアプリケーションを使うとの内容を頂けたのですが、どのように構成したら良いか分かりません。いろいろとサイトを調べても見つけられませんでした。 分かりやすい説明があるサイトなどがありましたら、教えて下さい。 急いでいるので説明が上手く出来ていないので、説明が足りない場合は補足に記載します。 よろしくお願いします。

  • Excel VBA・スピンボダンの使用

    VBA勉強中の者です。Excel2002を使用しております。 以前こちらのサイトで「特定セルに入力された数値を基に、別のセルの色を変える方法」を ご教示頂きまして(http://okwave.jp/qa/q6345375.html)、今度はそれを発展させたいと思い フォーム、スピンボタンの使用を試みました。 試行錯誤しましたが残念ながら動作させる事が出来ませんでした。 目的の動作 フォームのスピンボタンを設置、リンクを”=A1”に指定し、ボタン操作でセルA1の数値をボタン入力。 その数値に合わせてセルB1:B6のカラーを変化させたい。 作成したコード Private Sub Worksheet_Change(ByVal Target As Range) Dim mycolor As Range Dim boxcolor As Range Set mycolor = Intersect(Target, Range("A1")) Set boxcolor = Range("B1:B6") If Not mycolor Is Nothing Then Select Case Target.Value Case Is = 1 boxcolor.Interior.ColorIndex = 3 Case Is = 2 boxcolor.Interior.ColorIndex = 4 Case Is = 3 boxcolor.Interior.ColorIndex = 5 Case Is = 4 boxcolor.Interior.ColorIndex = 6 Case Is = 5 boxcolor.Interior.ColorIndex = 7 Case Is = 6 boxcolor.Interior.ColorIndex = 8 Case Is = 7 boxcolor.Interior.ColorIndex = 9 Case Is = 8 boxcolor.Interior.ColorIndex = 10 Case Is = 9 boxcolor.Interior.ColorIndex = 11 Case Is = 10 boxcolor.Interior.ColorIndex = 12 Case Is = 11 boxcolor.Interior.ColorIndex = 13 Case Is = 12 boxcolor.Interior.ColorIndex = 14 Case Else boxcolor.Interior.ColorIndex = xlAutomatic End Select End If End Sub スピンボタンの入力に合わせてセルA1の数値が増減する事は確認しましたが、 それに伴いB1:B6のセルカラーが変化しません。 また、スピンボタンを使用して数値を入力したあと、セルA1を一度アクティブ(F2を押す)にして 解除すると、唐突にしかし正常に動作します。 スピンボタンを使わずにセルA1に直接数値を入力すると、これも問題なく動作します。 以上の状況からスピンボタンを使用しセルA1に入力された数値のみが認識しないように思えます。 色々と調べて見たところ、SpinButton Changeイベントというものを使用する?と見当をつけ、 単純な発想ですがSpinButton1_Changeプロシージャへ上記のコードを入力してもやはり動作しません。 私のレベルでは既に手詰まりになってしまい、お手数ですがご指導頂きたくお願い致します。

  • ADODB.Streamを使用してUTF-8を出力

    こんちには。VBA初心者です。 Excelのワークシートの値をUTF-8形式のテキスト(.csvで保存します)形式でエクスポートするため、以下のようなコードを書いてみたのですが、「.Type = adTypeText」のところで、「実行時エラー 3001:引数が間違った型、許容範囲外、または競合しています。」のエラーになってしまいます。 ADO関係はほとんど知識がなく、「http://msdn.microsoft.com/ja-jp/library/cc408239.aspx」こういうところで調べても、よく理解できないことが多いので困っています。 どなたか助言をいただけないでしょうか。 (後学のために多少の解説もいただけると助かります) Sub exportToCsv() Dim myBook As String Dim mySheet As String Dim myLastRow As Long Dim i As Integer myBook = "sample.xlsm" mySheet = "sample" Workbooks(myBook).Worksheets(mySheet).Activate myLastRow = Cells.SpecialCells(xlLastCell).Row Set myStream = CreateObject("ADODB.Stream") With myStream .Type = adTypeText .Charset = "UTF-8" .Open .WriteText End With For i = 1 To myLastRow myStream.WriteText Cells(i, 1) & vbLf Next i myStream.SaveToFile "D:\sample.csv" myStream.Close Set myStream = Nothing End Sub

  • VCでJetによるCSVファイルの読み込み

    VCでJetによるCSVファイルを読み込む時、test_1=1,(2.0,3.0)で の”(2.0”を読み込めないです。”(”のせいかと思いますが、対処 方法を教えてください。 String^ test = gcnew String("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + csvdir + ";Extended Properties=\"text;HDR=Yes;FMT=Delimited\""); ...... csvSelect = gcnew String("SELECT * FROM [" + csvname + "]"); ....... OleDbDataReader^ reader = cmd->ExecuteReader(); //読み込みデータ test_1=1,(2.0,3.0) testdata1 = (String ^)reader[0]->ToString(); ”test_1=1”を読み込める。 testdata2 = (String ^)reader[1]->ToString(); ”(2.0”を読み込めない testdata2 は””となります。 testdata3 = (String ^)reader[2]->ToString(); ”3.0)”を読み込める >>>回答者:edp3142 Extended Properties の右辺に IMEX=1 を追加するといけるかな? IMEX=1を追加してもだめでした。 テキストなので、以下のように設定していますが、問題がないでしょうか ;Extended Properties=\"text;HDR=Yes;IMEX=1;FMT=Delimited\" >>>回答者:redfox63 当方の環境では うまく取得できるようですが ・・・ >>>VC2005/2008/2010 デバッグ環境での検証ですけど >>>reader->IsDBNull(1) は falseを返すんでしょうか? >>>testdata2 = reader->GetString(1);でも同じ結果ですか VC2008デバッグ環境で行っていました。reader->IsDBNull(1) は1となっています。 testdata2 = reader->GetString(1);で追加すると、実行するとcatch(Exceptionまで 直接にいき、読み込みがそのままで終了します。

  • VCでJetによるCSVファイルの読み込み

    VCでJetによるCSVファイルを読み込む時、test_1=1,(2.0,3.0)で の”(2.0”を読み込めないです。”(”のせいかと思いますが、対処 方法を教えてください。 String^ test = gcnew String("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + csvdir + ";Extended Properties=\"text;HDR=Yes;FMT=Delimited\""); ...... csvSelect = gcnew String("SELECT * FROM [" + csvname + "]"); ....... OleDbDataReader^ reader = cmd->ExecuteReader(); //読み込みデータ test_1=1,(2.0,3.0) testdata1 = (String ^)reader[0]->ToString(); ”test_1=1”を読み込める。 testdata2 = (String ^)reader[1]->ToString(); ”(2.0”を読み込めない testdata2 は””となります。 testdata3 = (String ^)reader[2]->ToString(); ”3.0)”を読み込める >>>回答者:edp3142 Extended Properties の右辺に IMEX=1 を追加するといけるかな? IMEX=1を追加してもだめでした。 テキストなので、以下のように設定していますが、問題がないでしょうか ;Extended Properties=\"text;HDR=Yes;IMEX=1;FMT=Delimited\" >>>回答者:redfox63 当方の環境では うまく取得できるようですが ・・・ >>>VC2005/2008/2010 デバッグ環境での検証ですけど >>>reader->IsDBNull(1) は falseを返すんでしょうか? >>>testdata2 = reader->GetString(1);でも同じ結果ですか VC2008デバッグ環境で行っていました。reader->IsDBNull(1) は1となっています。 testdata2 = reader->GetString(1);で追加すると、実行するとcatch(Exceptionまで 直接にいき、読み込みがそのままで終了します。

  • VCでJetによるCSVファイルの読み込み

    VCでJetによるCSVファイルを読み込む時、test_1=1,(2.0,3.0)で の”(2.0”を読み込めないです。”(”のせいかと思いますが、対処 方法を教えてください。 String^ test = gcnew String("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + csvdir + ";Extended Properties=\"text;HDR=Yes;FMT=Delimited\""); ...... csvSelect = gcnew String("SELECT * FROM [" + csvname + "]"); ....... OleDbDataReader^ reader = cmd->ExecuteReader(); //読み込みデータ test_1=1,(2.0,3.0) testdata1 = (String ^)reader[0]->ToString(); ”test_1=1”を読み込める。 testdata2 = (String ^)reader[1]->ToString(); ”(2.0”を読み込めない testdata2 は””となります。 testdata3 = (String ^)reader[2]->ToString(); ”3.0)”を読み込める >>>回答者:edp3142 Extended Properties の右辺に IMEX=1 を追加するといけるかな? IMEX=1を追加してもだめでした。 テキストなので、以下のように設定していますが、問題がないでしょうか ;Extended Properties=\"text;HDR=Yes;IMEX=1;FMT=Delimited\" >>>回答者:redfox63 当方の環境では うまく取得できるようですが ・・・ >>>VC2005/2008/2010 デバッグ環境での検証ですけど >>>reader->IsDBNull(1) は falseを返すんでしょうか? >>>testdata2 = reader->GetString(1);でも同じ結果ですか VC2008デバッグ環境で行っていました。reader->IsDBNull(1) は1となっています。 testdata2 = reader->GetString(1);で追加すると、実行するとcatch(Exceptionまで 直接にいき、読み込みがそのままで終了します。

  • CaTiaマクロに関する質問

    CaTiaは3DCADとしては、ハイエンドと言われ受講した。しかし曲線はスプラインだけでsin関数すら使えない。これではインチキだ。自動車メーカーが使っていると聞くが、まさかカッコよさの追求に使用しているのか(かっこの良い自動車なんか今まで見たこともない)。マクロにfunctionviewを使いたいが、どなたか善意のある方、使い方教えてくれませんか?(企業秘密だと・・・だめ?)

  • オートメーションで作成したExcel Book

    お世話になります。 Visual Studio 2008 C# を使い、オートメーションで作成した Excel Book が閉じられたことを リアルタイムで取得したいのです。 具体的には、フォームに複数のコントロールを配置した状態で、開いた Excel Book が閉じる瞬間をとらえてボタンの「Enabled」プロパティを制御できればいいのです。 簡単のために Excel Book はフォームの「Load」イベントで開き、新しい Book を追加します。 フォームにはボタン1個だけを配置します。 そして、Excel Book の右上の「×」ボタンで Book が閉じられる時、デリゲートを通じて BeforeBookClose イベントを用意すれば、Book が閉じられるタイミングを捕まえることはできます。 問題は、以下のコードでは、C#の出力ウィンドウに 「Delegate: BookClose イベントが呼ばれました」 「button1.Enabled = False」 と表示され、button1 の「Enabled」プロパティも確かに「true」になります。 しかし、次の行は実行されず、出力ウィンドウには 「'System.InvalidOperationException' の初回例外が System.Windows.Forms.dll で発生しました。」と表示されています。 つまり、それ以下のコードは実行されていません。 さらには、フォームにボタンやコンボなどを1個でも追加すると、もう、「button1.Enabled = true;」も実行されなくなります。これが追加するのがラベルだけなら大丈夫でした。 BeforeBookClose イベントの処理は Excel Book に対して行われ、もとのC#のコントロールに対しては意味をなしていない、とも思いましたが一概にそうでもなさそうで混乱しています。 プロセス間通信とかスレッド間通信とかが必要なのか、よくわかりません。 よろしくお願いします。 namespace test { public partial class Form1 : Form { public Form1() { InitializeComponent(); } Excel.AppEvents_WorkbookBeforeCloseEventHandler EventDel_BeforeBookClose; Excel.Application AppExcel = new Excel.Application(); private void Form1_Load(object sender, EventArgs e) { AppExcel.Visible = true; Excel.Workbook WB = AppExcel.Workbooks.Add(Type.Missing); EventDel_BeforeBookClose = new Excel.AppEvents_WorkbookBeforeCloseEventHandler(BeforeBookClose); AppExcel.WorkbookBeforeClose += EventDel_BeforeBookClose; button1.Enabled = false; } private void BeforeBookClose(Excel.Workbook Wb, ref bool Cancel) { System.Diagnostics.Debug.Print("Delegate: BookClose イベントが呼ばれました"); System.Diagnostics.Debug.Print("button1.Enabled = " + button1.Enabled.ToString()); button1.Enabled = true; System.Diagnostics.Debug.Print("button1.Enabled = " + button1.Enabled.ToString()); AppExcel.WorkbookBeforeClose -= EventDel_BeforeBookClose; } } }