VB.NET質問スレ(Part30)at TECH
VB.NET質問スレ(Part30) - 暇つぶし2ch577:デフォルトの名無しさん
09/07/20 21:50:59
何が苦労なんだか。P/Invoke すればいいだけだろ。

URLリンク(pinvoke.net)

とかあるし。

578:550
09/07/21 03:38:40
アプリ使用中のユーザーにフラグを設けるという案は駄目でした。
アプリが例外エラーで落ちたときにフラグをオフに出来ないからです。
なにかいい方法がありましたら教えてください。

579:デフォルトの名無しさん
09/07/21 06:10:28
アプリが例外エラーで落ちたときにフラグをオフにするようにしとけばいいのでは?

580:デフォルトの名無しさん
09/07/21 08:05:36
フラグじゃなくロックファイルを作成すればいいんじゃね?
起動したらロックファイルを作り、終了したら削除。


581:デフォルトの名無しさん
09/07/21 10:30:34
>>540
ないんです…。
あるプロジェクトのフォームプロパティにはあるんですが、別のプロジェクトのプロパティには無いんです。

582:デフォルトの名無しさん
09/07/21 15:59:36
>>580
何も解決してないからw

>>578
起動時にミューテックス作成&取得。
失敗したら誰かが使用中だと解るし、プロセスが終了したら勝手に解放される。

583:デフォルトの名無しさん
09/07/21 17:44:47
ミューテックスってネットワーク越しでもおkなの?

584:541
09/07/21 19:59:35
>>577
このサイトいいですね
構造体やら列挙やらをVB.NET用に書き換えるのに苦労するかと思ったんだ
まあ慣れた人なら機械的に変換していけるんだろうけどね

585:デフォルトの名無しさん
09/07/21 22:05:35
>>583
だめ。

バカだなぁ、おまえら。そういうときのために DB サーバーがあるんだろ?
・・・あれ?

586:デフォルトの名無しさん
09/07/21 22:09:21
だから共有フォルダにロックファイル作ればいいんだお

587:デフォルトの名無しさん
09/07/21 23:45:08
ミューテックスってデバッグ時に■で終了しても解放されるの?

588:デフォルトの名無しさん
09/07/22 00:05:16
ファイル開いてるときに強制終了したってファイルは閉じといてくれるだろ?
そういうことだよ

589:デフォルトの名無しさん
09/07/22 00:52:07
普通に排他で開いたらいいだけじゃないの?
TableAdapterとかDataSetだからダメって何言ってるの?

ところで、なんでADODBなんだよ。
TableAdapterの中見てみろ。


590:587
09/07/22 01:48:22
>>588
thx

591:デフォルトの名無しさん
09/07/22 18:41:40
ActiveReport 3.0で質問があります。

ページフッタのFormatイベント内で
最大ページ数を取得するにはどのようにしたらよいのでしょうか?

592:デフォルトの名無しさん
09/07/22 21:02:43
サードパーティ製品はスレ違い
サポートに電話して聞け

593:550
09/07/23 02:56:47
>>589
排他で開いても、Datasetに取得した時点でDBの接続は切れるんで
そのあと、他からもアクセス出来てしまいます。

とりあえず、皆様にはいろいろアドバイス頂きましたが、
時間も無い為、DB上のレコードにフラグを立てて使用中かどうか判断
することにしました。
強制終了して、フラグが立ったままになったらアプリを起動出来ない
ちょっと痛いシステムとなってしまいましたが、バレなきゃOKです。
まだ直す時間はあるので、もしアドバイスがあったらお願いします。

594:デフォルトの名無しさん
09/07/23 08:16:35
それだと結局1レコードは読まないといけない訳だ
やっぱロックファイルのがいいんでね?
で突然死対策に1秒ごとに空更新でもして
他のプログラムはファイルがあったとしても、更新時間見て
10秒以上たってたら死亡判定とか

595:デフォルトの名無しさん
09/07/23 08:19:56
監視用プログラムを別に作って常駐させとけばいんでない?

596:デフォルトの名無しさん
09/07/23 08:44:51
そんな面倒くさいことするか!?
このメモリ浪費家がッ


597:デフォルトの名無しさん
09/07/23 08:49:49
起動時にロックファイルをライトオープンで開いて
終了時にクローズするようにすれば
突然死してもファイルはクローズされるんじゃない?
多重起動の判定はロックファイルをライトオープンできるかどうかで。

598:デフォルトの名無しさん
09/07/23 09:06:09
できた
Public Class Form1

  Private sw As System.IO.StreamWriter

  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Try
      sw = New System.IO.StreamWriter("\\共有PC\共有フォルダ\lockfile.txt", False, System.Text.Encoding.GetEncoding(932))
    Catch ex As Exception
      MsgBox("他の人が使ってますお")
      Application.Exit()
    End Try

  End Sub

  Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
    Try
      sw.Close()
    Catch ex As Exception
    End Try
  End Sub

End Class


599:デフォルトの名無しさん
09/07/24 10:52:42
デザインモードで表示するとエラーになって赤い帯が上に出て
エラー情報としていろいろ内部コードが表示されるやつですが、
あの情報には「~.Designer.vb」のどこの行がNGなのかが
不明なので、どこを直せばいいのかわからない場合が多い。

こういうとき、再コンパイルしてるときもあるが、ダメなときは
開発環境自体を立ち上げ直して直るときもある。

しかしそれでもダメな場合も多い。こういうときは皆さんどんな風に
して原因突き止めていますか、よろしければご指南を頂きたく。
よろしくお願いします。

600:デフォルトの名無しさん
09/07/24 14:29:29
.Designer.vbを直接修正するしかない

601:599
09/07/24 14:59:40
>>600
ですよね、で、その場合、そのどこがNGなのかの情報が、あのたくさん
出てくる内部コードの情報には出てない場合がほとんどなのでした。

どこがNGなのかがわかれば対応できるのですが、皆目情報がなくて困って
いるのでした。

602:デフォルトの名無しさん
09/07/24 16:03:21
エラー一覧のエラーとか警告に出るけどなぁ

603:599
09/07/24 17:06:40
>>602
>エラー一覧

今使っているのはVS2005なのですが、デザイナー画面が出るところに

------
パスの形式が無効です。
非表示

場所 System.IO.Path.NormalizePathFast(String path, Boolean fullCheck)
場所 System.IO.Path.NormalizePath(String path, Boolean fullCheck)
場所 System.IO.Path.GetFullPathInternal(String path)
場所 System.Reflection.AssemblyName.GetAssemblyName(String assemblyFile)
場所 Microsoft.VisualStudio.Design.VSTypeResolutionService.AddProjectDependencies(Project project)
場所 Microsoft.VisualStudio.Design.VSTypeResolutionService.AssemblyEntry.get_Assembly()
場所 Microsoft.VisualStudio.Design.VSTypeResolutionService.AssemblyEntry.Search(String fullName, String typeName, Boolean ignoreTypeCase, Assembly& assembly, String description)
・・・
-------

こういった内部コードが現れては来るのですが何行目が悪いという情報がなく、
「エラー一覧」の中には特に表示されないのでした。どこがNGなのかわかれば
ありがたいのですが、それが出て来ないのでした・・・


604:デフォルトの名無しさん
09/07/24 18:53:06
もっと下の方見たらどこかに自分のクラス名があるだろ
その一つ上の行のメソッド名をDesigner.vb内で検索

605:599
09/07/24 19:23:30
>>604
どうもです!探してやってみます!・・・と思って、今もう一度デザイナー
を起動したら・・・、ありゃ?何にも他のことしてないのにナンデだろ??
直ってちゃんと出てる。。。なんだろぉ~。

この次またNGになったらその仕方で見てみます。助かりました、大変
ご迷惑、おかけしてすみませんでした。。。

あれーそれにしても・・・。

606:デフォルトの名無しさん
09/07/25 10:57:36
VB.NET2003で
Dim app As New Excel.Application
Dim books As Excel.Workbooks
Dim book As Excel.Workbook
Dim sheets As Excel.Sheets
Dim sheet As Excel.Worksheet
のように定義すると、端末によってNew Excel.ApplicationやExcel.Workbooksが定義されていませんというようなエラーがでます。
Imports System.Runtime.InteropServices
Imports Microsoft.Office.Core
は記述してあり、Microsoft Excel 11.0 Object Libraryは追加してあります。

どの端末もVB2003はインストール済みで上記の設定はしてあるのですが、端末によってこのエラーが出るときと出ないときがあります。
このエラーがでないようにするにはどうすればいいのでしょうか?

607:デフォルトの名無しさん
09/07/25 11:08:32
Office がインストールされてないんじゃね?

608:606
09/07/25 12:26:01
>>607
ありがとうございます。
Officeはインストールされています。

上記のような現象が起きている方はいませんか?

609:デフォルトの名無しさん
09/07/25 12:40:21
あとは、PIA がインストールされてないとか?

610:デフォルトの名無しさん
09/07/25 13:59:09
OfficeのPIAは、.NET1.1以降が予めインストール済みの環境で
Officeのインストールを実行しないと入らないからなあ。

611:デフォルトの名無しさん
09/07/25 14:18:40
>>606
Microsoft Excel 11.0 Object Libraryへの参照をプロジェクトに追加したときに
VSが自動的に生成するCOMラッパークラスの入ったdll(生成されるファイルのファイル名は忘れた)
が実行環境にインストールされてないんでしょ。

プロジェクトエクスプローラを「全てのファイルを表示」にしてる?
っていうか、こんな初歩的なことも知らないとしたら相当ヤバいな。

612:デフォルトの名無しさん
09/07/25 14:30:29
>>611
Interop.Excel.dll
Interop.Office.dll
あたり?

613:デフォルトの名無しさん
09/07/25 18:25:49
>>589
だからコネクションは自分で明示的に開けばいいの。
なんのためにConnectionプロパティが生成されると思ってんだ。
TableAdapterだからって接続したままに出来ない理由はない。


614:デフォルトの名無しさん
09/07/25 18:27:05
>>589じゃなくて>>593だった。
自分に突っ込んでどうする…

615:606
09/07/25 19:13:53
>>609-612
ありがとうございます。
Interop.Excel.dll
Interop.Microsoft.Office.Core.dll
は存在して、参照設定から見えていたと思います。

>OfficeのPIA
他の人もアセンブリの問題で色々苦労していたようなので、これが原因なのかもしれません。

Dim app As Object
Dim book As Object
Dim sheet As Object
app = CreateObject("Excel.Application")
こんな感じだと正常に動作するようなんですが…

616:デフォルトの名無しさん
09/07/25 19:35:52
>>615
ところでそれってソース開いたときにエラーとかじゃ無くって
実行するときにエラーってことだよね?
念のため

617:デフォルトの名無しさん
09/07/25 20:08:07
>>615
人の話ちゃんと聞こうよ。
参照設定は大丈夫か?なんていってないでしょ。

実行環境の話をしてるんだよ。
その2つがユーザーのマシンにもちゃんと入ってるの?
いやまず間違いなく入ってないんだってば・・・

618:デフォルトの名無しさん
09/07/25 21:06:43
開発環境 VS 2008

アプリケーション固有のメッセージを外部ファイルとして保存して、
プログラム側で起動時に読み込むようなものを作成しています。

上記のプログラムを作成するための定石、または、.NET Framework標準の
クラスなどが存在していますか?
ご存知の方がいれば、教えてください。

現在は外部ファイルをXMLにして、
DataTableのReadXMLで読み込む手法をとっています。

619:デフォルトの名無しさん
09/07/25 21:08:51
ResourceManager とかだな。

プロジェクトのプロパティから追加すれば、簡単に扱えるよ。

620:デフォルトの名無しさん
09/07/25 21:11:39
その固有のメッセージってのはアプリのインストール後にテキストエディタとかで修正したりするモンなの?

621:デフォルトの名無しさん
09/07/25 21:15:49
VB2008EEでExcelにデータを書き出すソフトを作っています。
使う人によってExcelのバージョンがまちまちなのでCOMは使わず以下のような感じです。

Dim xlApp As Object
Dim xlBook As Object
Dim xlSheet As Object

xlApp = CreateObject("Excel.Application")
xlBook = xlApp.Workbooks.open(パス)
xlSheet = xlBook.Worksheets(1)

xlSheet.Cells(1, 1).Value = "あああ"    '※1
xlSheet.Cells(1, 2).Value = "いいい"    '※2

xlApp.DisplayAlerts = False
xlBook.Save()

xlBook.Close()
xlApp.Quit()
xlSheet = Nothing
xlBook = Nothing
xlApp = Nothing
GC.Collect()

データを入力する部分で、※1だけなら問題ないですが※2を追加するとプロセスが残ってしまいます。
何が原因なのでしょうか。
開発環境のExcelは2000です。

622:デフォルトの名無しさん
09/07/25 21:24:44
思いっきりCOM使ってるよそれ
vb.net excel プロセス でググるといろいろ出てくる
ちゃんと作るのは非常に面倒だからそこだけWSHのVBSなんかで書いてもいいよ

623:デフォルトの名無しさん
09/07/25 21:42:22
>>619
情報ありがとうございます。
試してみます。

>>620
テキストファイルで修正できることを前提にしています。
開発終了後にそんな日が来るとは思いませんが、
どっかのエロいアーキテクトが書いたらしい規約に従う必要があるので……

624:デフォルトの名無しさん
09/07/25 21:45:48
>>622
レスありがとうございます。
COM参照を先にするかあとにするかだけで処理は一緒って認識で合ってますか?オブジェクト使う度に解放が必要と。
WSHは使ったこと無いので調べてみます。

625:デフォルトの名無しさん
09/07/25 21:49:39
いやGCに頼るのは不確実だからMarshal.ReleaseComObjectを使って
必ず逐一全て手動で解放する必要がある

626:デフォルトの名無しさん
09/07/25 23:07:25
>>616
ソリューションファイルを開いたときに、New Excel.ApplicationやExcel.Workbooksの所に波線が引かれ、コンパイルができないのです。

>>617
dllが存在しないと、参照設定のExcelとかInterop.Microsoft.Office.Coreのところに三角のマークが出るような気がしました。
確かに全てのファイルを表示にはしていなかった可能性があるので、obj配下にdllが存在しなかったのかもしれません。

627:606,626
09/07/25 23:12:27
参照設定のExcel等の所に三角マークが出ていなかったので、Interop.Excel.dll等は存在するものと思ったのです。

628:デフォルトの名無しさん
09/07/25 23:17:26
>>625
できました。ありがとうございました。
ちなみに>>621はMSのサンプルを真似たものなんですが、結局全然違うコードになりました。
あのサンプルは一体何だったんでしょうか…。

629:デフォルトの名無しさん
09/07/25 23:22:08
>>626
それ一番最初に書くところ
みんな実行時だと思ってたんだから

でね、それは単に参照が無いだけだから

630:606
09/07/25 23:26:56
>>629
ありがとうございます。

プロジェクトのディレクトリごとコピーしているので、obj配下にdllはあるのではないかと思います。
参照設定でも三角マークは出ていませんし。
全く同じコードをプロジェクトごとコピーしたのに、端末によってコンパイルができない理由がわからないのです。

631:デフォルトの名無しさん
09/07/26 00:00:18
>>630
あーもう
じゃ「参照が有効になってない」って言えばいい?
一度参照削除してもう一度登録しなおしてみ?

632:606
09/07/26 00:15:33
>>631
どうもです。

一度参照設定のExcel等を削除して登録し直したのですが、それでも駄目でした。
どうも端末依存でアセンブリの問題があるらしいので、それが原因のような気もしているのです。

他の人も逆に私がコンパイルできない端末でないとコンパイルできないようなことを言っていたし、
端末固有の設定がおかしいのかもしれません。

633:デフォルトの名無しさん
09/07/26 00:25:12
2003時代にエクセルを参照したプロジェクトを複数の開発環境に持ってくことを
何度かやったことがあるけどそんな問題は起こった記憶がないな。

まさかとは思うけど、

(1) 環境ごとにエクセルのバージョンが違う
(2) エクセルそのものがインストールされてない

なんてことはないよね?

634:デフォルトの名無しさん
09/07/26 00:34:48
>>633
ありがとうございます。

エクセルはインストールされていて、両方2003だったと思います。
コンパイルできない端末には確かFlex Gridがインストールされているなど、特殊な設定がなされているのです。
自宅では問題なくコンパイルできていますし、やはり端末依存の問題なのかもしれません。

Marshal.ReleaseComObjectを使っても逆に不安定になったりするし、.NETからエクセルを動かすのは難しいなぁ。

635:デフォルトの名無しさん
09/07/26 00:48:31
あー
それは複数のassenblyファイルがある場合だわ
消したらいいよ。

636:550
09/07/26 01:14:25
>>598
それよさそうですね。
ちょっと試してみようと思います。
ただ問題は、ロックファイルの出力先が固定になっている部分です。
mdbファイルの場所を移動しても探せるように、Connectionstringをいじれる仕様なので、
ロックファイルの出力先アドレスをxmlファイルに保存しなきゃいけないかも知れません。
納期が近い為、そこまで手が回りませんが参考になりました。
どうもありがとうございました。

637:デフォルトの名無しさん
09/07/26 01:17:10
>>635
AssemblyInfo.vbではなく、確かWindowsディレクトリ配下にアセンブリファイルがあり、それが端末によって異なっているせいで
端末によってコンパイルできたりできなかったりするような話は聞きました。

Dim app As Object
Dim book As Object
Dim sheet As Object
app = CreateObject("Excel.Application")

こんな感じに書くとコンパイルできるようなので、もうコードを書き直すしかないのかなと思っています。

638:デフォルトの名無しさん
09/07/26 01:43:08
>>636
普通app.configに書かない?

639:550
09/07/26 01:44:08
>>598
ただいま、試験的にプログラムを作って動かしたんですが、完璧ですね。
streamwriterをcloseしない限りは、そのアプリが専有で開いてるから
他からのアクセスが出来ないってことですね。
プログラムが異常終了しても自動的にlockfileへの専有が外れるから
他からのアクセスが可能になるということですね。
これかなりいいと思います。
ありがとうございました。

640:デフォルトの名無しさん
09/07/26 02:01:26
>>639
当初の質問と関係なくなってるなw

641:550
09/07/26 02:33:32
lockfileを隠しファイルにしたかったんですが、隠しファイルにすると
VBから見えてないのか、Streamwriterで例外エラー拾いますね。
たいした問題じゃないので我慢するしかないですねこれは・・・

642:デフォルトの名無しさん
09/07/26 20:18:52
排他Openできるんならコネクションを開いたままにしとけばいいって何度も言ってるのに
なんでわざわざ独自に作りこむのかね。


643:デフォルトの名無しさん
09/07/26 20:24:27
その方法がわからないからだろハゲ

644:デフォルトの名無しさん
09/07/26 20:58:34
全コードで TableAdapter の Connection 書き換えれば
排他で開きっ放しに出来るだろうけど手間考えたら
>>598 みたいな方法が一番簡単だな

645:デフォルトの名無しさん
09/07/26 21:09:33
そもそもその排他オープンが安全なのかが怪しいんだよね
それなら別次元の排他処理をしてしまうのもあり
だいたいちゃんとするならDBサーバーを入れるべきだし。

646:デフォルトの名無しさん
09/07/27 06:22:32
Dim psi As New System.Diagnostics.ProcessStartInfo
Dim p As System.Diagnostics.Process
Dim ssPath As String = "C:\Program Files\Microsoft Visual Studio\VSS\win32\ss.exe"
Dim ssDir As String = "C:\Program Files\Microsoft Visual Studio\VSS\win32"
Dim ssUser = "user"
Dim ssPwd = "user"
Dim GetPath = "D:\work"

If ssPath.IndexOf(" ") > 0 AndAlso ssPath.Substring(0, 1) <> """" Then
ssPath = String.Format("""{0}""", ssPath)
End If

'ComSpecのパスを取得する
psi.FileName = System.Environment.GetEnvironmentVariable("ComSpec")
'出力を読み取れるようにする
psi.RedirectStandardInput = False
psi.RedirectStandardOutput = True
psi.UseShellExecute = False
'ウィンドウを表示しないようにする
psi.CreateNoWindow = True

'コマンドラインを指定("/c"は実行後閉じるために必要)
psi.Arguments = "/c " & ssPath & " get -gtm " & sName & " -GL" & GetPath & " -Y" & ssUser & "," & ssPwd
'起動
p = System.Diagnostics.Process.Start(psi)
result = p.StandardOutput.ReadToEnd
こんな感じでVSSから最新バージョンを取得しているのですが、データベースのパスを指定したいと思い、
psi.Arguments = "/c set SSDIR=" & ssDir & " && " & ssPath & " get -gtm " & sName & " -GL" & GetPath & " -Y" & ssUser & "," & ssPwd
のようにset SSDIRを追加すると取得できなくなってしまいます。
どこが間違っているのでしょうか?

647:デフォルトの名無しさん
09/07/27 07:40:11
&で文字列連結すんな

648:デフォルトの名無しさん
09/07/27 08:02:57
>>647
ildasmで見ると、String.Concatで連結されているのが確認できるよ。
こういう一連の連結に使う分には何ら問題は無い。

649:デフォルトの名無しさん
09/07/27 08:06:19
&& だと環境変数は引き継がれないみたいだね

650:デフォルトの名無しさん
09/07/27 08:22:00
連結後に更に連結するなら、せめてString.Formatを…。
読みにくくてかなわん。

651:デフォルトの名無しさん
09/07/27 08:36:24
少しヒント
cmd /c"set AAA=XXX && echo %AAA%"
%AAA%
cmd /V:ON /c"set AAA=XXX && echo !AAA!"
XXX


652:デフォルトの名無しさん
09/07/27 23:07:00
複数のBMPの画像をAVI動画に変換する方法を大まかにおしえて

653:646
09/07/28 00:10:18
みなさんありがとうございます。
週末に試してみようと思います。

654:デフォルトの名無しさん
09/07/28 01:10:35
>>652
1.Windows ムービー メーカー を起動する
2.対象の画像を読み込む
3.ムービーの発行でDV-AVIを選んで実行
4.AVI動画が完成\(^o^)/

655:デフォルトの名無しさん
09/07/28 22:21:11
ODP.NETを使用し、パッケージをコールしてDataSetを取得し、
コンボボックスのDataSourceにDataTableを入れたのですが、
中身が表示されません。
DisplayMemberとValueMemberプロパティにも項目名を設定しています。
セットした後に、SelectedValueとSelectedTextの値を見ると、
SelectedValueには値が入っていますが、SelectedTextには値がありません。

パッケージをコールすると、
表示する用の文字列と裏で持つ用の文字列を複数レコード取得します。

調べても、問題ないと思うのですが何が悪いのでしょうか?

combo1.DataSource = DataTable
combo1.ValueMember = "AAA"
combo1.DisplayMember = "BBB"

試しに、AAAとBBBを逆にセットしてみたのですが、やはりSelectedValueの方しか値が入っていません。

よろしくお願いします。

656:デフォルトの名無しさん
09/07/28 22:26:57
DataTable には値が入ってるの?

657:デフォルトの名無しさん
09/07/28 22:27:00
SelectedTextはコンボボックスのテキスト入力部の、コピーとかのために「選択」してる文字列だから

658:デフォルトの名無しさん
09/07/28 22:32:58
>>656
DataTableには値がちゃんと入っています。
デバッグでも確認しましたし、DataGridViewに突っ込んで確認しています。

>>657
そこは調べ不足でした。SelectedItemで確認するのが正しいですね。


最悪、ループでAddしていくしかないですかね…

659:デフォルトの名無しさん
09/07/28 22:37:50
もう少し、ちゃんとしたコード出してみ。

DataTable の指定とかおかしそうな気がする。

660:デフォルトの名無しさん
09/07/28 22:43:14
>>659
ソースが手元にないので、覚えている範囲で書きます。

Using ds As DataSet = (オラクルパッケージをFillメソッドで実行)
Using dt As DataTable = ds.Tables(0)

combo1.DataSource = dt ←このdtをDataGridViewに入れ、値が入っていることを確認
combo1.ValueMember = "AAA"
combo1.DisplayMember = "BBB"

End Using
End Using

こんな感じです。

661:デフォルトの名無しさん
09/07/28 22:48:35
Disposeしてどうするあほかよ


662:デフォルトの名無しさん
09/07/28 23:31:00
>>661
うわっ、すいません。初歩的な所で…
なぜ、DataGridViewは表示されたままだったのでしょうか?

663:デフォルトの名無しさん
09/07/30 11:41:38
String.Formatの書式について教えて下さい。

String.Format("合 計 {0,12:\\###,###,##0}", dTotal) → 合 計 -\9,000

String.Format("合 計 \{0,12:###,###,##0}", dTotal) → 合 計 \ -9,000

String.Format("合 計 {0,12:\\-###,###,##0}", dTotal) → 合 計 -\-9,000

dTotalがマイナスの場合は-1をかけて、
String.Format("合 計 {0,12:\\-###,###,##0}", dTotal)とすれば
合 計 \-9,000になるのですが、それ以外の方法で
表示させるにはどうしたらいいでしょうか?

664:デフォルトの名無しさん
09/07/30 11:45:45
セクション区切り記号 ;
を使えば正負でそれぞれに書式指定できる
使い方はカスタム数値書式指定文字列のページ見れ

665:デフォルトの名無しさん
09/07/30 13:01:18
VBNETの入門書2冊読破したんだけどどうすればいい?

666:663
09/07/30 13:03:44
ありがとうございます。
おかげさまで出来ました!
もっと勉強します。


667:デフォルトの名無しさん
09/07/30 13:53:02
自動更新で下のやつがきたんだけど手動でダウンロードできないんでしょうか?
できるのであれば方法を教えてください

Visual Studio 2005 Service Pack 1 セキュリティ更新プログラム(KB971090)

668:デフォルトの名無しさん
09/07/30 14:00:15
KB番号ググりゃ見つかるだろ

669:デフォルトの名無しさん
09/07/30 14:08:44
>>667
それクソ時間かかるよな。SP1 のときも思ったけど。

670:デフォルトの名無しさん
09/07/30 14:51:40
なんか、やってることはほぼ再インストールと同じなんだそうだ。
だから、DLしてもどっちみち時間かかる

671:デフォルトの名無しさん
09/07/30 17:10:06
>>669
そうそう
だから手動でダウンロードしたいわけなのよ

672:デフォルトの名無しさん
09/07/30 17:25:13
URLリンク(www.microsoft.com)

249MBワロタ

673:デフォルトの名無しさん
09/07/30 17:33:05
.NETからEXCEL使ってなんかやるとき、STAThreadじゃなくてMTAthreadだと、
なんか問題あったりするんでしょうか?

EXCELのオブジェクトを作成したスレッド以外から使ったりはしない前提です。

なんかイマイチこの辺を理解してないんです。

674:デフォルトの名無しさん
09/07/30 17:49:22
>>672
ありがとうございます


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch