C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 >>
■440  VB.NetでExcelデータのセルの値が取得したい
□投稿者/ Hik -(2005/05/24(Tue) 17:04:42)

    分類:[VB.NET] 


    分類:[VB.NET] 

    2005/05/24(Tue) 17:09:36 編集(投稿者)

    VB6からVB.Net2003へのアップグレードを実行しましたが、

    VB6:
    Dim xlSheet As Excel.Worksheet
    if xlSheet.Cells(1, 1) = "" Then
    'ここに処理
    End if



    VB.Net2003:
    'UPGRADE_WARNING: オブジェクト xlSheet.Cells(1, 1) の既定プロパティを解決できませんでした。 詳細については次のリンクをクリックしてください : 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1037"'
    If xlSheet.Cells._Default(1, 1) = "" Then

    と変換されました。
    コメントのリンク先を見ると、言いたい事はわかるのですが解決できずに困っています。「xlSheet.Cells._Default」の表現を使ってうまく解決する方法はありますでしょうか。
    セルの値を取得するロジックが数100箇所ほどあるので、あまり変更しなくて解決できればと思います。
    よろしくご教授下さい。



親記事 /0過去ログ1より / 関連記事表示
削除チェック/

■456  Re[5]: 二重起動を確実に禁止する
□投稿者/ じゃんぬ -(2005/05/26(Thu) 09:20:58)
>

    分類:[VB6以前] 

    No454に返信(Starfishさんの記事)
    > GetLastError のかわりに、Err.LastDllError でOKです。

    なるほど、Err.LastDllError を使うのですね。
    てっきり、GetLastError で拾うのとばかり思っていました。
    勉強になりました、ありがとうございました。m(_ _)m
記事No.436 のレス /0過去ログ1より / 関連記事表示
削除チェック/

■454  Re[4]: 二重起動を確実に禁止する
□投稿者/ Starfish -(2005/05/25(Wed) 23:36:39)

    分類:[VB6以前] 

    No449に返信(じゃんぬねっとさんの記事)
    > うーん、以下のようにすると、CreateMutex が必ず成功していまいます。
    > GetLastError も必ず 0 が返ります。(C ではうまくいくと記憶しています)

    GetLastError のかわりに、Err.LastDllError でOKです。
記事No.436 のレス /0過去ログ1より / 関連記事表示
削除チェック/

■449  Re[3]: 二重起動を確実に禁止する
□投稿者/ じゃんぬ -(2005/05/25(Wed) 11:03:57)
>

    分類:[VB6以前] 

    No446に返信(スフレさんの記事)
    > ・CreateMutex() して、成功ならアプリケーション本体へ。失敗なら二重起動なので終了
    > ・アプリケーションが終るときには CloseHandle() で mutex を破棄

    うーん、以下のようにすると、CreateMutex が必ず成功していまいます。
    GetLastError も必ず 0 が返ります。(C ではうまくいくと記憶しています)
    そこで、WaitForSingleObject() を使うことにしちゃったんですが...

    Public Sub Main()
    Dim hMutex As Long

    ' 新しい Mutex を生成する
    hMutex = CreateMutex(ByVal 0&, 0&, "HOGEHOGE")

    If GetLastError() = 0& Then
    Dim hForm As Form1
    Set hForm = New Form1

    Call hForm.Show(vbModal)

    Set hForm = Nothing
    End If

    Call CloseHandle(hMutex)
    End Sub

    もう少し、調べてみます。

    # 管理人が何やってるんだか... orz

記事No.436 のレス /0過去ログ1より / 関連記事表示
削除チェック/

■446  Re[2]: 二重起動を確実に禁止する
□投稿者/ スフレ -(2005/05/24(Tue) 22:01:49)

    分類:[VB6以前] 

    変更されたようですが、CreateMutex() の返り値をチェックしてない今のコードではダメです。

    ・CreateMutex() して、成功ならアプリケーション本体へ。失敗なら二重起動なので終了
    ・アプリケーションが終るときには CloseHandle() で mutex を破棄

    WaitForSingleObject() や ReleaseMutex() を使う必要はありません。

記事No.436 のレス /0過去ログ1より / 関連記事表示
削除チェック/

■438  Re[1]: 二重起動を確実に禁止する
□投稿者/ じゃんぬ -(2005/05/24(Tue) 10:47:35)
>

    分類:[VB6以前] 

    報告ありがとうございました。

    Win32API の WaitForSingleObject 関数を使って、
    Mutex の所有を要求した方が良さそうですね。

    直しておきます。
記事No.436 のレス /0過去ログ1より / 関連記事表示
削除チェック/

■436  二重起動を確実に禁止する
□投稿者/ スフレ -(2005/05/24(Tue) 00:03:36)

    分類:[VB6以前] 


    分類:[VB6以前] 

    @ITの掲示板から http://jeanne.wankuma.com/tips/process/02-mutex.html 「二重起動を確実に禁止する」に辿り着いたのですが、このページのVB6の例、間違ってます。このコードだと、該当プロセスがない状態から2つのプロセスがほぼ同時に起動すると、

    1. プロセス1でOpenMutex()が呼ばれる。返り値 0
    2. プロセス2でOpenMutex()が呼ばれる。返り値 0
    3. プロセス2でCreateMutex()が呼ばれる。成功。
    4. プロセス1でCreateMutex()が呼ばれる。失敗。
    5. プロセス1とプロセス2の両方でアプリケーション本体へ

    ということが有り得ます。

    正しい手順は、最初にCreateMutex()を呼びます。

親記事 /0過去ログ1より / 関連記事表示
削除チェック/

■432  構造体のアドレスを取得方法
□投稿者/ Ash -(2005/05/20(Fri) 13:55:11)

    分類:[VB.NET] 


    分類:[VB.NET] 

    こんにちは Ashです。

    VC++6.0(以下VC)で作成したOCXをVB.NET2003(以下VB)で使用してますが、
    VC−VB間でデータのやり取りに構造体のアドレスを渡そうと
    思っています。
    VC側では従来通り構造体の先頭アドレスが渡ってくるものとして、
    それ以降の処理を記述していますが、VB側で渡す構造体の先頭アドレス
    の取得方法に悩んでいます。


    構造体の中身が全てblittable型だと以下の方法でうまくいきます。

    sample   :中身が全てblittable型の構造体
    SampleOCX :VCで作成したOCX
    A     :SampleOCXのメソッド、引数に構造体の先頭アドレスを渡す

    Dim hGc As GCHandle = GCHandle.Alloc(sample, GCHandleType.Pinned)
    Dim iAddr As Integer = hGc.AddrOfPinnedObject().ToInt32()

    Call SampleOCX.A(iAddr)

    hGc.Free()

    しかし、非blittable型を含む構造体だとMSDNライブラリにも載っているように
    エラーが発生して先頭アドレスを取得できません。


    非blittable型を含む構造体の先頭アドレスを取得する良い方法が
    あれば教えていただけないでしょうか

    宜しくお願い致します。
親記事 /0過去ログ1より / 関連記事表示
削除チェック/

■437  Re[7]: 常に最背面に表示されるウインドウ
□投稿者/ Starfish -(2005/05/24(Tue) 01:43:56)

    分類:[VB.NET] 

     はじめまして。

     一応解決にはなっているようですが、他のやり方の紹介です。

     ただし、サンプルはVB6.0です。

    http://www2j.biglobe.ne.jp/~little-g/cgi-bin/vbtheme2.cgi
    #276 ウィンドウのZオーダーに関する処理

記事No.419 のレス /0過去ログ1より / 関連記事表示
削除チェック/

■427  Re[6]: 常に最背面に表示されるウインドウ
□投稿者/ 中西法彦 -(2005/05/17(Tue) 12:35:18)

    分類:[VB.NET] 

    解決というか、報告です。フォームのWindowStatsをNomalに設定したところちらつかなくなりました。これが正解か?よく分かりませんがとりあえず満足の行く結果です。ありがとうございました。
記事No.419 のレス /0過去ログ1より / 関連記事表示
削除チェック/

■425  Re[5]: 常に最背面に表示されるウインドウ
□投稿者/ 中西法彦 -(2005/05/16(Mon) 16:27:00)

    分類:[VB.NET] 

    こんにちは。WM_KILLをsendすればフォーカスが切れるのでちらつかないのかな?と思っていろいろ見ているところです。じゃんぬねっとさんではこの辺りも試されたのでしょうか?
    デスクトップに張り付くカレンダーや時計、付箋のようなものを考えているのですが、.NETではちらつきをおさえることは至難の技なのでしょうか?
記事No.419 のレス /0過去ログ1より / 関連記事表示
削除チェック/

■424  Re[4]: 常に最背面に表示されるウインドウ
□投稿者/ じゃんぬ -(2005/05/16(Mon) 15:56:23)
>

    分類:[VB.NET] 

    こんにちは、じゃんぬ@管理人 です。

    No423に返信(中西法彦さんの記事)
    > 解決しました。一瞬ちらつくのですがそれはこれからspy++で追っかけてみます。
    > 何ともならないのかもしれませんが…。

    リンク先で、私が発言しているようにチラツキは解消されないでしょう。
記事No.419 のレス /0過去ログ1より / 関連記事表示
削除チェック/

■423  Re[3]: 常に最背面に表示されるウインドウ
□投稿者/ 中西法彦 -(2005/05/16(Mon) 15:46:00)

    分類:[VB.NET] 

    解決しました。一瞬ちらつくのですがそれはこれからspy++で追っかけてみます。何ともならないのかもしれませんが…。アドバイスありがとうございました。

    ' WndProcメソッドをオーバーライド
    Protected Overloads Overrides Sub WndProc(ByRef m As Message)

    Const WM_SETFOCUS As Integer = &H7

    ' フォーカスがあたると
    If m.Msg = WM_SETFOCUS Then
    ' 背面へ
    SendToBack()
    ' 戻り値に0を指定する
    m.Result = New IntPtr(0)
    Else
    ' デフォルトの処理を行う
    MyBase.WndProc(m)
    End If

    End Sub

記事No.419 のレス /0過去ログ1より / 関連記事表示
削除チェック/

■421  Re[2]: 常に最背面に表示されるウインドウ
□投稿者/ 中西法彦 -(2005/05/16(Mon) 13:26:54)

    分類:[VB.NET] 

    早速でありがとうございます。以下のコードを書いてみましたが…。該当するウインドウをマウスでクリックすると「上に」表示されます。何が足らないのでしょうか???

    Protected Overrides Sub WndProc(ByRef m As Message)

    Const WM_WINDOWPOSCHANGING As Integer = &H46

    If m.Msg = WM_WINDOWPOSCHANGING Then
    SendToBack()
    m.Result = IntPtr.Zero
    Else
    MyBase.WndProc(m)
    End If

    End Sub
記事No.419 のレス /0過去ログ1より / 関連記事表示
削除チェック/

■420  Re[1]: 常に最背面に表示されるウインドウ
□投稿者/ はいこーん -(2005/05/16(Mon) 13:20:01)
記事No.419 のレス /0過去ログ1より / 関連記事表示
削除チェック/

■419  常に最背面に表示されるウインドウ
□投稿者/ 中西法彦 -(2005/05/16(Mon) 12:41:16)

    分類:[VB.NET] 


    分類:[VB.NET] 

    お世話になります。VB.NETを使用しています。早速ですが、最前面に表示されるウインドウは簡単に出来ますが、常に最背面に表示させるにはどのようにすればいいのでしょうか?
親記事 /0過去ログ1より / 関連記事表示
削除チェック/

■417  Re[5]: フォルダ内の検索
□投稿者/ くま -(2005/05/16(Mon) 09:33:31)

    分類:[VB6以前] 


    今回の処理は最終Excelのファイル名までわかっていて
    そのExcekが格納されている直近のフォルダ名が同じかどうか
    知りたかったのです。

    みなさまありがとうございました。
    また何か質問に伺うと思います。
    その時もよろしくお願いします。

記事No.390 のレス / END /過去ログ1より / 関連記事表示
削除チェック/

■416  Re[4]: フォルダ内の検索
□投稿者/ Ash -(2005/05/16(Mon) 09:15:26)

    分類:[VB6以前] 

    こんにちは Ashです
    横槍失礼します

    > XX処理のところ、GetFileNameでいいんですよね?

    中博俊様の考えやくま様の考えがイマイチわかってないですが、
    くま様の処理でどこまでは分かっている情報なのでしょう?

    フォルダ名及びフォルダ(階層)までは分かっている状態で、
    「そのフォルダ内にフォルダ名と同じファイルが存在するか」
    ということでしょうか?

    それならGetFileNameで可能だと思います。


    それとも対象のフォルダの1つ上の階層まで分かっている状態で、
    「そのフォルダ内にあるフォルダ名と同じファイルが各フォルダの下に存在するか」
    ということでしょうか?

    ここまでの情報しか分かっていなければ以下のAPI関数を使えばできると思います
    FindFirstFile
    FindNextFile

記事No.390 のレス /0過去ログ1より / 関連記事表示
削除チェック/

■396  Re[3]: フォルダ内の検索
□投稿者/ くま -(2005/05/12(Thu) 09:20:47)

    分類:[VB6以前] 

    すみません、できました(^-^)

    XX処理のところ、GetFileNameでいいんですよね?
    どなたか中博俊さまのヒントに、これが正解か教えてください。
    よろしくお願いします。
記事No.390 のレス /0過去ログ1より / 関連記事表示
削除チェック/

■395  Re[2]: フォルダ内の検索
□投稿者/ くま -(2005/05/12(Thu) 09:05:45)

    分類:[VB6以前] 


    お返事ありがとうございます。
    処理の考え方はわかったのですが、

    >現在のフォルダ名 = XX処理("C:\SatelliteJ10\Tree\004\data\20050126\")
    の「XX処理」の部分がわかりません。
    パスで返すのは分かるのですが、関数か何かでフォルダ名だけ
    抜き出せるのでしょうか?
    それとも、TRIMなどでパスの後ろからLOOPで回しながら"\"を探し、
    そこまでがファイル名という風にコーディングしなくてはなりませんか?

    初心者で申し訳ないです。COBOL的発想しかないもので。。。
記事No.390 のレス /0過去ログ1より / 関連記事表示
削除チェック/

<前の20件 | 次の20件>

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 >>

ヒット件数が多いので過去ログ1〜1 までの検索結果 / 過去ログ2からさらに検索→

パスワード/

- Child Tree -