VB.NET質問スレ (Part6) at TECH
VB.NET質問スレ (Part6) - 暇つぶし2ch112:デフォルトの名無しさん
04/07/15 20:59
勝手に関連付けとかで開かれたりしたらびっくりするだろ。

113:108
04/07/15 21:18
>>112
右クリックから「開く」やエディタなどを指定して
開くと開けたので、ダブルクリックやダイアログの開くボタンを
クリックでも開くと思ったのですが・・・。

ShowDialog()の後にCreateObjectを使って
エクセルを呼び出せばいいということですね?

114:デフォルトの名無しさん
04/07/15 21:30

まあいいいや。

単純にプロセスで開けばいいんじゃね?
その後にExcelの操作したいんだったら別だけど。

115:デフォルトの名無しさん
04/07/15 21:32
>>113
メニューには開くだけじゃなくて選択とかがないか?

つうか、勝手に開かれたら使いもんにならないだろうに。

116:デフォルトの名無しさん
04/07/15 22:11
夏だから?Spoke効果?


117:94
04/07/15 22:54
>>106 107
ごめんなさい。しったかしてました。
.NETで作ったものは全部マネージドコードだと思っていました。

>*VBのプロジェクトのプロパティ-構成プロパティ-デバッグにある
>  有効にするデバッグ アンマネージコードデバッグ
これでうまくいきました。
お騒がせしてすみません。
ありがとうございました。


118:デフォルトの名無しさん
04/07/15 23:56
教えてください

ウインドウが2つ(ウインドウA、ウインドウB)あります。
ウインドウAで入力エラーが発生した際にウインドウBを呼び出します。
このときウインドウBが前に来ている状態です。

そしてウインドウBを閉じたときに(右上の×をクリック)、
ウインドウAのエラーが発生した箇所(テキストボックス)に
フォーカスが当たっている状態にしたいのですが、
そんな方法はあるのでしょうか?

119:すぺる間違っていたらゴメソ
04/07/16 00:04
ウインドウBをShowDialogで開き、戻ってきたときに
フォーカスを移動すればよいのでは。

120:デフォルトの名無しさん
04/07/16 02:52
ストアドプロシージャにステップインを選んでストアドのデバッグを行いたいのですが
ブレークせずに素通りしてしまいます
クエリアナライザではブレークできているのですがどこが悪いのでしょうか?

121:デフォルトの名無しさん
04/07/16 04:21
*VBのプロジェクトのプロパティ-構成プロパティ-デバッグにある
  有効にするデバッグ SQL Sever デバッグ
にチェックが入っているか。
とか。

122:120
04/07/16 04:34
>>121
チェックボックスはONにしてあります
ヘルプに記述してあるDLL等はすべて所定の位置にインストールしてあり
インストールCDからデバッグコンポーネントのインストールもしてあります

出力ウインドウには
スレッド 'マシン名(53)' (0x800005f0) はコード 0 (0x0) で終了しました。
プログラム 'SQL デバッガ: T-SQL' はコード 0 (0x0) で終了しました。
と出力されるだけで、ストアドの結果は出力されませんでした

123:デフォルトの名無しさん
04/07/16 16:58
VBのブラウザコントロールで、<input type="file">の値を操作したいのですが、スクリプトでは操作できない等の情報ばかりです。
何かいい方法はないでしょうか?よろしくおねがいします。

124:デフォルトの名無しさん
04/07/16 17:25
ブラウザコントロールってIEコンポーネントの?
System.WebやSystem.Netは?

125:123
04/07/16 18:16
>>124
返信ありがとうございます。

VS the spokeを購入したばかりでよくわからないのですが、現在はIEコンポーネントというものを使用しているのだと思います。

System.Web、System.Netについて調べてみます。
図々しくて申し訳ありませんが、どうしてもわからないことがあったら
またよろしくお願いします。

126:デフォルトの名無しさん
04/07/16 18:22
CPU温度ってどうやって測るんですか?
コードがわかりません
何かコンポーネント必要ですか?

127:デフォルトの名無しさん
04/07/16 18:29
温度計が必要です。


128:デフォルトの名無しさん
04/07/16 21:34
>>123>>125
COM相互運用でやることになります。

参照の追加で、MSHTML.DLL (IDL) とかを追加して、
GetDocument で取ってきたものを as IHTMLDocument3 で IHTMLDocument3 にして、
getElementByID とかで input 等を取ってきて(IDが無ければdocumentElement以下をのエレメント階層を
トラバースして探すこと)、input 要素の IHTMLElement を as IHTMLInputFileElement で IHTMLInputFileElement にして、
->put_value() でファイル名を設定できるはず。

その後 submit 要素を探して、->click() で送信。

C++ (MFC) でのサンプルなら、
URLリンク(www.experts-exchange.com)
にある。
参照の追加で COM タイプを取り込むこと、as I**** で所望のインタフェイスが得られること、
が理解できれば、C# でも別段難しい点はないと思う。

129:デフォルトの名無しさん
04/07/16 22:15
教えてください><
ORACLE9i の外部プロシージャ(DLL)をVB.netで作りたいです。
今まで何も考えず、Windowsアプリケーションしか作ったことがなかったので、
DLLなんてさっぱりわかりません。。。
CのDLL(アンマネージド)ではWindowsが読めるヘッダが付いていて、
VBのDLLではフレームワーク用のが付いているんですよね?
今回サーバー機がWin2000でフレームワーク入ってるんで、
PL/SQLからキックするさえが出来れば・・・と思ってるんですが。。。
ORACLEのマニュアルではCとJAVA用のコードしか無く、
しかも、Cだと、ライブラリ名・外部公開名のみに対して、
VBはライブラリ名・クラス名・実行メソッド名を指定しないといけない(と思うので)
ですよね。
C++のDLLでラップするというのも考えたんですが、(それも質問中です(;つД`) )
VBだけで出来れば一番いいです。
何もわかってなくて申し訳ないですが、何か分かる人教えてください。



130:128
04/07/16 23:26
>>128
>が理解できれば、C# でも別段難しい点はないと思う。

VB.NET スレだった・・・死んできまつ(嘘)

131:123
04/07/17 02:03
>>128
ありがとうございます。

わからない用語調べながら試行錯誤してみたんですがどうもうまくいきません。
笑われてしまうかもしれませんが作成したコードかきます。
ヒントをください。

HTML側
<form>
<input type="file" name="files" id="ID"><br>
<input type="submit">
</form>

Dim Data1 As mshtml.IHTMLDocument3
Dim Data2 As mshtml.IHTMLElement
Dim Data3 As mshtml.IHTMLInputFileElement

Data1 = AxWebBrowser1.Document
Data2 = Data1.getElementById("ID")
Data3 = ????
Data3.value = "C:\aaa\aaa"

132:デフォルトの名無しさん
04/07/17 11:58
インターネットのプロパティ、接続タブの画面で、設定ずみの
ダイヤルアップ設定を選択、通常の接続でダイヤルするを既定に
設定してあるのですが、ブラウザやメーラーでインターネットへの
アクセスを開始すると自動的にダイヤルアップが開始され、繋がり
ますが、VB.NETで作ったツールでSystem.Web.Mail.SmtpMail.Send
やらSystem.Net.Sockets.TcpClientやらを実行したときには
インターネットに繋がっていなければ、同じように自動的に
ダイヤルアップが行われるというものでは無いのでしょうか・・・

VB.NET ダイヤルアップでググっても、ズバリこれ!というサンプルも
見つけられず・・・

ADSL常時接続やらルータによる接続が当たり前な昨今、ダイヤルアップ
なんてことをすることも少ないのかもしれませんが・・・

133:デフォルトの名無しさん
04/07/17 19:52
VB.NETスレの皆様、ちょっと聞いて下さい。

少し前まで、このスレでお世話になりながらVB.NETプログラミングに精進していたのですが、
今回、Webアプリケーションに初TRYしてみることにしました。言語はVB.NETです。
そこで、以下の現象が。

Visual Studio.NET2003で、ASP.NETアプリケーションを新規作成し、
フォームにいろいろ配置して「デバッグ」!
すると、「デバッグができません」という旨のエラーが出てしまいます。
「デバッグなしで実行」すると正常に実行できます。

環境:

LANを利用して開発してます。
・サーバーPC
 OS:Windows Server 2003 ファミリ
 IIS:あり
 Visual Studio.NET 2003:なし
・クライアントPC
 OS:Windows XP Home Edition
 IIS:なし
 Visual Studio.NET 2003:あり

サーバーPCにIISが入っていて、クライアントPCにVisual Studio.NET 2003が
入っている状態です。
サーバーPCにつないで、ASP.NETアプリケーションを作っているのだけれど、
この場合、サーバーPCにもVisual Studio.NET2003が入っていないとデバッグ
できないのでしょうか? サーバーPC1台で開発する形?

つたない日本語で申し訳ないのですが、どうかヒントを下さらないでしょうか;

134:120
04/07/18 01:19
VSを再インスコしたらデバッグできるようになりました
お騒がせしました<m(__)m>

135:デフォルトの名無しさん
04/07/18 13:22
VisualBasic.net 2002 pro をインストールしたんですけど、
ソリューションの作成、Windowsアプリなどを新規に作成しようとした場合に
「"C:\Document~1\ \LOCALS~1\TEMP\RAD214DC.tmp"が見つかりません」とおこられて
Windowsアプリなど作成ができません。

すでに作ったソリューションなどを読み込んだ場合は普通に編集、デバッグはできます。
3回インストールしなおしましたのでインストールの失敗とは考えにくいです。
インストール時には常駐ソフトは終了させました。
MSに問い合わせましたが症状がわからないなどを理由に回答を得られませんでした。
どなたか同じ症状でお困りの方はいらっしゃいませんか?



136:デフォルトの名無しさん
04/07/18 13:37
>VisualBasic.net 2002 pro
こんな製品存在したっけ。。?

137:デフォルトの名無しさん
04/07/18 13:57
>>135
Windowsのバージョンは?

138:デフォルトの名無しさん
04/07/18 17:45
WindowsXP Professional SP1です。
とくにレジストリをいじっているわけでもなく、WindowsUpdateはすべて完了しております。



139:デフォルトの名無しさん
04/07/18 18:13
>>138
OSから再インストロールぐらいしか思いつかん。

140:デフォルトの名無しさん
04/07/18 18:18
ていうかやっぱり、
>VisualBasic.net 2002 pro
こんなこと書いてる時点で、ある「疑惑」が払拭できないんだが。。
この疑惑が正しいとしたら、>>135はいい度胸してるよな。
というより、こういうことする人がMSの一質問ウン万円って技術サポート料金
を本当に払うとは....

141:デフォルトの名無しさん
04/07/18 18:25
>>140
VisualStudio.netの間違いです。
訂正するまでもない間違いだと思い流してました。


142:VB開発者
04/07/18 21:51
現在、Visual Basic .NETで開発をしている者です。

昨日までは何の問題も無く開発が出来たんですが、
昨日ごろから、VB .NETのアプリケーションを作ろうと、プロジェクトの新規作成をクリックすると、
「オートメーションサーバーはオブジェクトを作成できません」と表示され、新規作成出来ません…

設定をいじくった覚えは無いのですが、どうやったら解決できるのでしょうか?
ご指南賜りたく存じます。


143:デフォルトの名無しさん
04/07/18 21:52
正規品を使え。

144:デフォルトの名無しさん
04/07/18 21:57
ここに来るのはプログラマや開発者のはずなのに、なぜこんなに問題の絞込みの出来ない人が多いんだろう?

145:VB開発者
04/07/18 22:15
正規品を使っていますよ。

その証拠に昨日まではちゃんと作成できていましたし。

146:デフォルトの名無しさん
04/07/18 22:25
「オートメーションサーバーはオブジェクトを作成できません」を
www.google.co.jp で検索してください。

147:VB開発者
04/07/18 22:30
>>146さん
検索してみたところ、Nortonをインストールしている場合のエラーが出てきましたが、
つい先週ほどNorton System Workをアンインストールしたところです…



148:デフォルトの名無しさん
04/07/18 22:32
>>142
URLリンク(www.gdncom.jp)

149:VB開発者
04/07/18 22:38
>>148

ありがとうございました。おかげさまで修復できました。
教えてクンで申し訳ございませんでした。これからは検索をきちんとしてみようと思います。

皆様、ご迷惑お掛けいたしました。

150:初心者
04/07/18 23:07
textboxに入力した値を計算してmsgboxで表示させたいんだが(´・ω・`)
1.入力した値を計算式にするにはどうすれば・・
2.msgbox中で、メッセージ結果メッセージ みたいなのにするには・・

厨っぽい質問でスマソOTZ

151:デフォルトの名無しさん
04/07/18 23:24
>>150
どういう値を入力させるの?
1つのtextboxに、1920/726+829*7427-784みたいな式を入れる?
2つのtextboxにそれぞれ数値を入れて、+,-,*,/ボタンを押して計算?


152:デフォルトの名無しさん
04/07/19 00:22
>>135
関係あるかどうかわからんけど、
OSのログオンに日本語のアカウント名使ってる?
半角英数字のアカウント作ってやるとどう?

153:デフォルトの名無しさん
04/07/19 14:39
比較的簡単な顧客管理DBを作るときって
クライアントPC数が5台ぐらいあったら、ストアドつかったほうがいいですか?
それともADO.NETでガリガリ書いたほうがいいですか?

154:dame
04/07/19 17:16
かなり基本的な質問なんですが、よろしくお願いします。

作成したプロジェクトの入ったフォルダを移動したり、
名前を変更すると、開く事ができなくなりますよね。
この解決方法ってないのでしょうか。
あるプロジェクトで作ったフォームを別のプロジェクトにコピーしたり、
バックアップで保存しておいたりとかがとても不便で
こまっております。どうかよろしくお願いします。

155:デフォルトの名無しさん
04/07/19 17:23
プロジェクトのフォルダにある色々なファイルをメモ帳とかで開いてみ。
大体わかる。

156:デフォルトの名無しさん
04/07/19 17:25
>>154
>作成したプロジェクトの入ったフォルダを移動したり、
>名前を変更すると、開く事ができなくなりますよね。
普通にやってる限りそんなことは全くないので、もう少し詳しく書いたほうがいいと思う。

157:デフォルトの名無しさん
04/07/19 17:29
全てのVBプログラマは蜂起せよ!!

構造体のないVBは【糞】
スレリンク(news7板)

158:デフォルトの名無しさん
04/07/19 17:35
↑プ、また騙されたのね、の予感。。。
んなつまらんことで楽しいと思える君は幸せだね。
俺はそんな幸福な馬鹿になるぐらいなら不幸でいいけど。

159:デフォルトの名無しさん
04/07/19 17:44
VBに構造体はある罠

160:デフォルトの名無しさん
04/07/20 10:44
.NET Framework クラス ライブラリにダイアルアップ関係は
無いのでしょうか。

URLリンク(www.microsoft.com)
で検索してみたものの、それらしきものは見当たらず・・・・

VB.NETでダイアルアップはどう実現できるか、どなたかご助言くださいませ


161:128
04/07/20 10:54
>>131
(
今探したんですが、この記事参考になると思います。
URLリンク(www.eggheadcafe.com)
)

VB.NET は良く知らないのですが、たぶんこんな感じでしょう。

Dim Data1 As mshtml.IHTMLDocument3
Dim Data2 As mshtml.IHTMLElement
Dim Data3 As mshtml.IHTMLInputFileElement

Data1 = AxWebBrowser1.Document
Data3 = Data1.getElementById("ID")
Data3.value = "C:\aaa\aaa"

IHTMLElement から IHTMLInputFileElement への型変換は自動的にやってくれるはずです。
で、あとは type="submit" の input 要素を探して、click してあげるわけですが、
ID が付いていれば同様に getElementByID で出来るのですが、ID が無い場合には、
無い場合には、document の all プロパティに階層関係を無視した全ての要素の集合があるので、

Dim element As mshtml.IHTMLElement
For element in Data1.all
 If element.tagName = "input" Then
  If element.getAttribute("type") = "submit" Then
   element.Click
  End If
 End If
Next element

のようにして sumbit してあげると良いでしょう。(input type="submit" の要素に onclick 等による
妙な仕掛けが無い場合には、form 要素を探して element.submit しても良いです).

162:デフォルトの名無しさん
04/07/20 19:48
今更なんですが、VB.NETで.NET Frameworkを使わないアプリケーションの
開発ってできますか?


163:デフォルトの名無しさん
04/07/20 20:47
できません

164:デフォルトの名無しさん
04/07/20 21:14
>>163何も知らないんだな馬鹿が


165:デフォルトの名無しさん
04/07/20 21:52
構造体の配列に初期値を入れたいのですが下のようにやっても
だめなのはなぜですか。
Public structure s
public a as integer
public b as integer
End structure
Dim c() as s = New s(){New s(0,1),New s(2,3)}

166:デフォルトの名無しさん
04/07/20 22:55
コンストラクタ書け

167:デフォルトの名無しさん
04/07/20 23:02
>>165
ていうかs(0,1)って何?
私は人間だからあなたの意図はなんとなく伝わるけど、
コンパイラは人間の願望をくみ取るようにはプログラムされてないでしょ?

168:デフォルトの名無しさん
04/07/20 23:06
まあ昔の構造体感覚だと別にありえない発想ではない。

169:デフォルトの名無しさん
04/07/20 23:12
dim as integer

170:デフォルトの名無しさん
04/07/20 23:18
みなさん!
夏ですね!!

171:デフォルトの名無しさん
04/07/20 23:22
そうですね。

172:デフォルトの名無しさん
04/07/20 23:53
コンストラクタを書けばこれでいいのか?
c() = New s(0,1,2,3)




173:デフォルトの名無しさん
04/07/21 00:12
なわけないよな

174:デフォルトの名無しさん
04/07/21 00:48
初心者です。ファイルダウンロード支援ツールなどにあるリストビューの中に
プログレスバーがあって、ファイルのダウンロードの進行具合を把握できるやつ
ありますよね。あれってどうやってるのかな?ぐぐってみたんだけどいい例は見
つからなかったです。VB.NETでどうやって実現するのでしょう。


175:デフォルトの名無しさん
04/07/21 00:55
>>166-173
皆さんのレスのおかげで理解できました。
Public Structure s
Public a As Integer
Public b As Integer
Public Sub New(x As Integer,y As Integer)
a=x
b=y
End Sub
End Structure


176:133
04/07/21 08:57
あれ、133ですが、どなたも答えて下さらないのですね;

ASP.NETがデバッグできないのは仕様なんでしょうか?

もいちど質問してみます・・・

>>133

177:デフォルトの名無しさん
04/07/21 12:44
>あれ、133ですが、どなたも答えて下さらないのですね;
>あれ、133ですが、どなたも答えて下さらないのですね;
>あれ、133ですが、どなたも答えて下さらないのですね;
>あれ、133ですが、どなたも答えて下さらないのですね;
>あれ、133ですが、どなたも答えて下さらないのですね;
>あれ、133ですが、どなたも答えて下さらないのですね;
>あれ、133ですが、どなたも答えて下さらないのですね;
>あれ、133ですが、どなたも答えて下さらないのですね;
>あれ、133ですが、どなたも答えて下さらないのですね;
>あれ、133ですが、どなたも答えて下さらないのですね;
>あれ、133ですが、どなたも答えて下さらないのですね;
>あれ、133ですが、どなたも答えて下さらないのですね;
>あれ、133ですが、どなたも答えて下さらないのですね;
>あれ、133ですが、どなたも答えて下さらないのですね;
>あれ、133ですが、どなたも答えて下さらないのですね;
>あれ、133ですが、どなたも答えて下さらないのですね;
>あれ、133ですが、どなたも答えて下さらないのですね;

178:デフォルトの名無しさん
04/07/21 13:38
>>176
> ASP.NETがデバッグできないのは仕様なんでしょうか?

仕様ではない。やり方がまずいだけ。

つーか、スレ違い。帰れ。


179:デフォルトの名無しさん
04/07/21 14:01
初めてバイナリを扱うんだけど、もともと10バイトのファイルに
バイナリで6バイト書き込んだ場合後ろ4バイトは元のデータが残った
ままですよね?これを消して6バイトのファイルにしたい時は
どうすればいいんですか?

超初歩的なことなんだろうけど良い検索ワードが思い付かなかったので
ここで質問させてもらいます

180:133
04/07/21 14:23
すまんかった。
そんなに煽らないでおくれ。
どのスレいったらよいのでしょう。
さすらってきま

181:デフォルトの名無しさん
04/07/21 15:34
>>133
URLリンク(www.atmarkit.co.jp)
回答だけじゃなく、質問も参考にすべし。


182:デフォルトの名無しさん
04/07/21 15:46
>>179
まず、ヘルプで FileOpen 調べれ。
Output で Append じゃなければ上書きだ。


183:133
04/07/21 18:19
>>兄貴 (>>181)
ありがとうございます!!
質問を参考に1から頑張ってきます!

ああ、暖かい・・・


184:デフォルトの名無しさん
04/07/21 19:37
おまえら、どうか教えてください。
コンソールアプリケーションで、マウスカーソルを画面右下に飛ばしたいんだけど、
以下のコードを実行するとなぜか、画面右上に飛んでしまうんだよね・・・。

------------------------------------------------------------------------------------------
Module Module1
Public Declare Function SetCursorPos Lib "USER32" (ByVal x As Long, ByVal y As Long) As Long
Sub main()
Call SetCursorPos(1024, 768)
End Sub
End Module
------------------------------------------------------------------------------------------

768のところは、どんな数値にしても同じ結果・・・。
なぜ??


185:デフォルトの名無しさん
04/07/21 20:01
>>184
Long×、Integer○

186:デフォルトの名無しさん
04/07/21 20:14
教えてください。
データベースにVariable、Dataというフィールドを作成しました。
例えばPHPの場合ですと、以下のような感じでVariableを変数名、
Dataをその値に設定できます。

while ($db->next_record()) {
  ${$db->f("Variable")} = $db->f("Data");
}

これをVB.netで行うことは出来ないでしょうか?
ちなみに以下のような感じで処理しており、変数をデータベースに追加するごとに
Caseを追加しなければならない状態です。

While OleRs.Read()
  Select Case OleRs.Item("Variable")
    Case "A"
      A = "" & OleRs.Item("Data")
    Case "B"
      B = "" & OleRs.Item("Data")
    ・
    ・
  End Select
End While


187:184
04/07/21 20:45
>>185
すげー、解決した。
ありが㌧

188:デフォルトの名無しさん
04/07/21 20:52
>186
俺はPerl使いだが少なくともPerlではそういう使い方は推奨されないな。
PHPはそんなのを普通に使う奴が多いのか?
Perlでならハッシュ使えって言われるのが普通だな。
PHPは知らん。
VB.NETならHashTable使え。

189:186
04/07/21 21:14
>>188
自分で考えたもので、こんな感じのソースは本やネット上では見たことがありません。
具体的ににはSQL文でIDフィールドをWHEREして、必要な情報のみ取り出しています。
変数を簡単に管理できるし楽だなぁと思ったもので・・・

とりあえず、HashTableを勉強してみます。
ありがとうございました。


190:デフォルトの名無しさん
04/07/22 00:40
>>162-164
どっちでしょうか?
できるの? できないの?

191:デフォルトの名無しさん
04/07/22 00:42
>>190
いわゆる、Windowsネイティブなアプリの事なら、
VB.NETではできません。VC#も然り。
VC++なら可能

192:デフォルトの名無しさん
04/07/22 00:42
.NETではVB6.0まであったコンボのメソッドAddItemは使えないのでしょうか?
それともどこかのクラスライブラリにありましたか?
コンボ名.Items.Addで処理そのものはできましたが。


193:デフォルトの名無しさん
04/07/22 00:43
>>191
ありがとう。

194:デフォルトの名無しさん
04/07/22 15:03
>>192
名称の統一で変更になったと思う
メソッド名が変わることによる不利益は???


195:インスタント
04/07/22 16:31
今、画像ソフトの製作をしているのですが、
拡大処理がうまくいきません。
画像処理といっても、ドット絵なんで、
ドット毎の色を認識させ、表示させるのでしょうが、
やりかたがよくわかりません。
素人みたいな質問ですいませんが、できるかた教えていただけませんか?

196:デフォルトの名無しさん
04/07/22 17:50
>>195
StrechBltでぐぐれ

197:デフォルトの名無しさん
04/07/22 18:24
Excelのワークブックからユーザ定義プロパティの値を取得しようと試みているのですが、
VBAと同じように取れずに困っています。

Excel-VBAだと
Dim prop as DocumentProperties
set prop = ActiveWorkbook.CustomDocumentProperties

でプロパティリストを得ることができるのですが、
VB.NETで同じように
Dim prop as Excel.DocumentProperties
prop = appExcel.ActiveWorkbook.CustomDocumentProperties

とすると、実行時にキャストが誤っているというエラーが出てきます。

オブジェクトブラウザで確認すると、CustomDocumentPropertiesの戻り値型がObject型に
なっていて、明らかにVBAの方と違っているのですが、これはこういう仕様で、
VB.NETでExcelワークブックのユーザ定義プロパティは取得できないのでしょうか?

方法をご存知の方、ぜひ教えてください。


198:デフォルトの名無しさん
04/07/22 18:32
実験してないので正確じゃないかもしれないが
Object型で戻ってるものをDocumentProperties型に直接代入することは出来ないので
Ctype(戻り値,DocumentProperties)でキャストしなおしてみる

199:デフォルトの名無しさん
04/07/22 18:37
TextBox から派生したコントロールのクラスを作ってるんですが、そのクラスにプロパティを
追加しました。

で、いざその作成したコントロールを使おうとした場合、VisualStudio の画面でプロパティを
設定する場合、0とか1とかの設定値そのものを設定したのですが、これを標準のプロパティ
である ImeMode のようにコンボボックスによる選択式にすることってできますでしょうか?

ご存知の方がいらっしゃいましたらご教授願えませんでしょうか?

200:デフォルトの名無しさん
04/07/22 18:40
>>197
CType で明示的にキャストする必要があったんでないかな。
これでだめならソース出して見れ。こっちで確認すっから。

201:197
04/07/22 18:40
>>198

レスどうもです。

prop = CType(appExcel.ActiveWorkbook.CustomDocumentProperties, Excel.DocumentProperties)

で試してみましたが、やはり同じ実行時のキャストエラーが出てきます。
オブジェクトの生成型がDocumentProperties型じゃない感じです。

もし、VB.NETから、Excelのマクロのfunctrionを呼び出せればExcel-VBA側で取得したデータを
戻すようにできるのですが、呼び出すはできましたっけ?


202:197
04/07/22 18:46
>>200

レスどうもです。

やろうとしていることは、ユーザ定義プロパティの値をすべて取得することで、
コードは次のような形です。
実行の前提条件としてExcelは起動済みで、そのアプリの参照変数がappExcelです。

Dim WB As Excel.Workbook = appExcel.ActiveWorkbook 'appExcelはExcelアプリの参照変数です
Dim DPS As DocumentProperties
Dim DP As DocumentProperty

DPS = WB.CustomDocumentProperties ←ここで実行時にキャストエラーが出る

For Each DP IN DPS
プロパティ値を取得するコード
Next


203:デフォルトの名無しさん
04/07/22 18:56
>>202

URLリンク(support.microsoft.com)

PIA を使わんとだめかも。

204:174
04/07/22 19:00
174だけどわかる人いない?
VB6だとカスタムドローでやるみたいなんだけど・・・
.NETではどうやってやるの?

205:デフォルトの名無しさん
04/07/22 19:05
ていうかオーナードローが理解できてるんなら
VB6でもNETでも同じ事だと思うんだけど。。。

206:174
04/07/22 19:23
同じ用にやればいいの?
WindowsProcでカスタムドロー・・・っていう感じ?
タブコントロールだと標準でオーナードローがあるんだよね?
でもListViewだと見当たらないんだよな~

見当外れの事いってたらスマソ

207:デフォルトの名無しさん
04/07/22 19:39
フローティングツールバーは売られているみたいですが、
MFCみたいに(Visual C++6.0でウィザードが作ってくれるみたいに)
標準で提供されてないですか?

208:デフォルトの名無しさん
04/07/22 20:48
>>198>>200
実行時にキャストのエラーガ出るんだからキャスト自体は実行しようとしてる。
# Option Strict Off の場合はこれでいける。

問題は実際に返されるオブジェクトの実行時型が違ってしまってるってことだな。
メソッドの戻り値の実行時型を確認したければ、
とりあえずObject型に代入しといてウォッチとかで見れると思う。
まあ、代入せんでもウォッチ式にそのまま書いてもいいが。


209:デフォルトの名無しさん
04/07/23 04:50
BitBlt関数を使いたいのですが、VB.NETではPictureBoxのハンドルを
直接取得できないんでしょうか?

210:デフォルトの名無しさん
04/07/23 07:21
>>209
そのまんま、Handleってプロパティあるじゃん。

211:デフォルトの名無しさん
04/07/23 07:38
>>210
それ違うだろ

212:197
04/07/23 08:14
>>203 >>208

CustomDocumentPropertiesが返してくるオブジェクトの型はSystem.__ComObjectという
型で、本来の型をラップしているようで、結局どの型をラップしているのかはわからなかったのですが、
強引にSystem.__ComObject型のままプログラムを組みました。

 Dim WB As Excel.Workbook = appExcel.ActiveWorkbook
 Dim DPS As Object

 DPS = WB.CustomDocumentProperties

 Trace.WriteLine(DPS.Item(1).Name)

なんか納得できないけど、作業が終わったら、この変なラッパクラスをじっくり調べたいと思います。

レスくれた方達、どうもでした!

213:デフォルトの名無しさん
04/07/23 10:53
theSpokeを買って書類もマイクロソフトに郵送したのですが未だにシリアルキーがもらえませんが
どうしたらいいのでしょうか。

214:デフォルトの名無しさん
04/07/23 11:53
MSに連絡するのが一番

215:デフォルトの名無しさん
04/07/23 12:26
>>213
エラースキャン、デフラグ、エロ動画の削除
この辺をやって待ちわびるよろし

216:名無しさん@お腹いっぱい。
04/07/23 17:15
IMEがONのテキストボックス(Text1)にフォーカスがある状態でキーを押した場合
Text1_KeyDownのe.KeyCodeがKeys.ProcessKeyだということはすでにIMEが処理済
なのだと思うのですがIMEが処理する前にイベント補足して送られる仮想キーコードを変更することは可能でしょうか?
バカバカしい話なのですがキーボード左上の1,2,3・・・のキーをあ、い、う・・・に代えたいという要望に答えるためです。

そもそも考えが間違ってるとは思いますが方法があればご教授ください。

217:216
04/07/23 18:03
我ながら根本的に無理な気がしてきました・・・


218:デフォルトの名無しさん
04/07/23 20:30
キーフック使え

219:デフォルトの名無しさん
04/07/23 20:47
鼻フックのがいいよ。

220:デフォルトの名無しさん
04/07/23 21:07
システムを起動時にネット(FTP,Webにアップしたファイル)に接続して、
常に最新版をチェックし、最新版なら自動でダウンロードし、
アップデートするような仕組みって難しいのでしょうか。

アップデートファイルをダウンロードしてシステムが起動していない時に
実行(システムファイル上書き)するようなものは一応出来たのですが。

システムファイルを使用中に上書きすることが出来ないので
自動アップデートの仕組みが不思議です。

221:デフォルトの名無しさん
04/07/23 21:51
>>220
.NET Application Updater Component

222:220
04/07/23 22:09
>>221さん、ありがとうございました。

223:デフォルトの名無しさん
04/07/23 23:12
たまに自動アップデートすると再起動要求されて
そのまま二度と立ち上がらなくなることあるよね

224:デフォルトの名無しさん
04/07/23 23:19
.NET板
URLリンク(bbs.2ch2.net)

225:デフォルトの名無しさん
04/07/23 23:32
>>223
割れXPですか?

226:デフォルトの名無しさん
04/07/24 15:11
WebBrowserで、ボタンを押すと前のページに戻るっていうのは
どのように作れば出来ますか?
あと、WebBrowserについて詳しく書かれているところありますか?

227:デフォルトの名無しさん
04/07/24 16:15
Visual Studio .NETにて、Officeアプリケーションのイベントを
拾って特定の処理を行うようなプログラムを作ろうとしています。
イベント監視を行うようなクラスってありますでしょうか??

Main関数にて、Application.Runでオブジェクトをnewしないとすぐに
プログラムが終わっちゃうし、Application.RUnを使う場合は、
Formクラスを継承したオブジェクトを作成しないとだめだし、
Formクラスを継承したオブジェクトを作ると、画面にフォームが
表示されてしまいます。。。


228:デフォルトの名無しさん
04/07/24 17:50
>>226
GoBackで戻れるのではないかと。

>>227
例えばどんなイベント?
フォームにオブジェクトとして追加ではなく、
そのアプリケーションでおきたイベントを取りたいのであれば
フックを作んなきゃ駄目でしょう。

229:227
04/07/24 18:46
>>228
Visio2003でシェイプが図面に配置されたイベントや、シェイプが図面が
削除されたイベントです。
フックですか!初めて聞く単語です。
調べてみます。どうもです!

230:デフォルトの名無しさん
04/07/24 21:01
>>227
フォームを指定しないRunもあるんだが…

231:デフォルトの名無しさん
04/07/24 23:02
>>227
Runメソッドのオーバーロードリスト見れ。

232:デフォルトの名無しさん
04/07/25 02:00
>>228
あ、GoBackですか。ありがとうございます!

というわけでやってみたのですが、これ以上進めないときに(戻れないときも)
進むボタンを押すとエラーが起こってしまいます。どう対処すればよいのでしょうか?

Private Sub Button2_Click (略) Handles Button2.Click

AxWebBrowser1.GoForward()

End Sub

233:デフォルトの名無しさん
04/07/25 02:04
Try
 AxWebBrowser1.GoForward()
Catch ex as Exception
Messagebox.show("すすめませんよ")
End Try

234:デフォルトの名無しさん
04/07/25 02:07
>>232
こんなんどうよ?C#だけど。
protected void AxWebBrowser_CommandStateChange(object sender, DWebBrowserEvents2_CommandStateChangeEvent e)
{
if(e.command.Equals(SHDocVw.CommandStateChangeConstants.CSC_NAVIGATEBACK))
{
MenuItem miView = MenuMain.MenuItems[2];
MenuItem miGoTo = miView.MenuItems[3];
miGoTo.MenuItems[0].Enabled = e.enable;
TbBack.Enabled = e.enable;
}
if(e.command.Equals(SHDocVw.CommandStateChangeConstants.CSC_NAVIGATEFORWARD))
{
MenuItem miView = MenuMain.MenuItems[2];
MenuItem miGoTo = miView.MenuItems[3];
miGoTo.MenuItems[1].Enabled = e.enable;
TbForward.Enabled = e.enable;
}

235:デフォルトの名無しさん
04/07/25 02:31
>>234
凄いっ!!でもC#ですか…残念です。
それをVBに変換するソフトとかありませんでしたっけ?

236:デフォルトの名無しさん
04/07/25 02:49
こんなもんC#の文法知らなくても想像で直せるだろ。

237:234
04/07/25 04:05
分からんようなんで、VB.NETに直してみた。

Private Sub ToolBar1_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles ToolBar1.ButtonClick
If e.Button Is Me.GoBackButton Then
Me.AxWebBrowser1.GoBack()
ElseIf e.Button Is Me.GoForwardButton Then
Me.AxWebBrowser1.GoForward()
End If
End Sub

Private Sub AxWebBrowser1_CommandStateChange(ByVal sender As System.Object, ByVal e As AxSHDocVw.DWebBrowserEvents2_CommandStateChangeEvent) Handles AxWebBrowser1.CommandStateChange
If e.command = SHDocVw.CommandStateChangeConstants.CSC_NAVIGATEBACK Then
Me.GoBackButton.Enabled = e.enable
ElseIf e.command = SHDocVw.CommandStateChangeConstants.CSC_NAVIGATEFORWARD Then
Me.GoForwardButton.Enabled = e.enable
End If
End Sub

初めてVB系書いたんで、変なとこがあったら無視してくれ。
GoBackButtonとGoForwardButtonは、コンストラクタでEnableをFalseにしとく。

238:デフォルトの名無しさん
04/07/25 12:18
>>237
このとおりにやってみました。
そしたら戻れないようになりました!ありがとうございます!

ですが、戻るボタンを押しても戻りません。
Me.AxWebBrowser1.GoBack()

AxWebBrowser1.GoBack()
にしても駄目でした…

239:デフォルトの名無しさん
04/07/25 12:27
>>238
.NET 1.1だよね?
うちでは動作するんで、ソースさらすよ。
URLリンク(www.asahi-net.or.jp)

240:eko
04/07/25 12:43
質問です。

現在、スプレッドシートを自作をしているのですが
それをフォーム1に貼り付けて、右クリックしてコンテキトにデザイナと
言うメニューを追加して、選択するとフォーム2を立ち上げて
(ここまでは何とかできました・・。)

そのフォーム2からフォーム1のデザイン(プロパティ)を変更する方法が
判りません。

ちなみにスプレッドはpaintで描画してます。
拙い説明ですが、ご存知の方居ないでしょうか??
よろしくお願いします。

241:デフォルトの名無しさん
04/07/25 16:38


242:デフォルトの名無しさん
04/07/25 16:49
ヘ_ヘ
ミ・・ ミ ということにしたいのですね :)
( ° )~

243:233
04/07/25 16:50
スルーかよ・・・

244:デフォルトの名無しさん
04/07/25 17:36
>>243
なんだ?つっこんで欲しいのか?

245:デフォルトの名無しさん
04/07/25 21:45
>>239
何でなんですかね。おかしいところは無かった様な気がするのですが。
でも、ほかの事をして何とかなりました。
いろいろありがとうございました!!!

246:デフォルトの名無しさん
04/07/25 22:10
Textboxコントロールの、
Textプロパティにて、
その桁数をあらわすにはどうすればいいでしょう?

例えば、TextBox1というテキストボックスの値(MAX10桁)で、
5桁だけ入力されていたらなにか処理をする場合、

If TextBox1.Text=(5桁)Then
    【処理】
End If


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

247:デフォルトの名無しさん
04/07/25 22:18
Lengthだっけかな。ってかマニュアル見ろ。

248:デフォルトの名無しさん
04/07/25 22:46
>>246
普通に、Len() で OK。

249:デフォルトの名無しさん
04/07/25 22:47
個人的にLenはお奨めしない。ま、別にいいんだけどね。

250:デフォルトの名無しさん
04/07/25 23:58
またなんですが、
WebBrowserで読み込みを中止するにはどうしたらいいのでしょうか?

251:デフォルトの名無しさん
04/07/26 00:15
>>250
Me.AxWebBrowser1.Stop()
のことなのか?

252:デフォルトの名無しさん
04/07/26 00:22
>>251
それです、それ!
ありがとうございました!!

253:デフォルトの名無しさん
04/07/26 00:30
分からん部分はまとめて書いてくれ。
なんか多そうだし。

254:↑
04/07/26 00:45
嫌味とか冷やかしで言ってるワケじゃないので。

255:デフォルトの名無しさん
04/07/26 09:20
>>240
俺はデザイナフォームに一時ファイル名を渡してやってるよ。

デザイナ起動時に対象のコントロールの内容を一時ファイルに保存してデザイナ側
で読み込み、変更を反映する場合は、逆にデザイナのコントロールの内容を一時ファイル
に保存するってな感じで。
あと、変更の反映するかの確認が必要なければ、参照渡しのコントロールを、デザイナに
セットすれば完全な同期がとれると思う。

はずしてたらスマソ。

256:デフォルトの名無しさん
04/07/26 10:24
>>254
じゃあ、お言葉に甘えて…
WebBrowserで新しいウィンドウが出てくるとそのページはIEで開かれちゃうじゃないですか。
そのページを自作ブラウザで開かせるのはどうしたらいいのですか?

257:デフォルトの名無しさん
04/07/26 11:49
>>256
こんな感じで。
Private Sub AxWebBrowser1_NewWindow(ByVal sender As System.Object, ByVal e As AxSHDocVw.DWebBrowserEvents2_NewWindow2Event) Handles AxWebBrowser1.NewWindow2
Dim form2 As New Form1
e.ppDisp = form2.AxWebBrowser1.Application
form2.Show()
End Sub

258:デフォルトの名無しさん
04/07/26 12:54
質問です。
メモ帳を作成したのですが、
テキストファイルからプログラムを実行した際に、
テキストファイルを読み込む処理の仕方が分かりません。
プログラムをexeから実行したのかファイルから実行したのか判別する
方法は無いのでしょうか。



259:デフォルトの名無しさん
04/07/26 13:13
>>258
質問の意味がいまいち分からないが、
Command関数を調べると、いいかも知れんね。

260:258
04/07/26 14:13
>>259
サンクス!

261:デフォルトの名無しさん
04/07/26 15:44
>>257
本当に助かりました!
ありがとうございました!!!!!!!

262:只今勉強中
04/07/26 16:36
Public Sub New(ByVal idcarF1 As Integer)

MyBase.New()
InitializeComponent()

idcarF2 = idcarF1

Dim filterIdcarF2 As integer
'Dim filterIdcarF3 As integer

filterIdcarF2 = idcarF2
'filterIdcarF3 = 5

UpdateDatabase()

'SQL文
SqlDataAdapter1.SelectCommand.CommandText = "SELECT * FROM excol_data " _
& "WHERE car_id LIKE '" & filterIdcarF2 & "'"

'データセットを初期化して、データーアダプターからデーターを読み込む
DsExcol1.Clear()
SqlDataAdapter1.Fill(DsExcol1)

End Sub

ウィンドウを開くと同時にfilterIdcarF2を使って、データーを絞り込むという作業を作りました。さらに
”filterIdcarF3 = 5"で"excol_cd"の値が"5"のものを絞り込みたいのですが、SQL文の所の書き方
をどなたか教えていただけないでしょうか?



263:デフォルトの名無しさん
04/07/26 17:34
excol_cd の型は?それがないと正確に答えられない。

たぶんSQLスレ行けって言われると思うけど。


264:デフォルトの名無しさん
04/07/26 17:57
>>262
F2で絞り込んだものをさらにF3で絞り込むのか
F2とF3を同時に発行して絞り込むのか

あとInteger型のものに対してLike(あいまい)で検索かけてるけど
これはこれでいいの?

265:デフォルトの名無しさん
04/07/26 18:24
>>264
car_id が Integer型ってどうして分かるの?


266:262
04/07/26 18:39
すいません、もう右も左もわかんなくて、本を引き引きやってる状態で・・・。

excol_cdもcar_idも整数型です。

あと、F2で絞り込んだものをさらにF3で絞り込みたいのです。自動車の種類別
のコードがF2で、外装の色がF3で、この二つで絞り込んで、内装の色を検索し
たいので・・・。

Likeがあいまい検索だというのは、いまスレを見て始めて知ったので外してみたら、
SqlDataAdapter1.Fill(DsExcol1)の行で止まってしまい、LIKEの代わりを今探して
SQLのサイトとニラメッコしています。

267:262
04/07/26 19:13
SqlDataAdapter1.SelectCommand.CommandText = "SELECT * FROM excol_data WHERE car_id = 18"
これだ18番のcar_idを持つものが表示されるのですが
SqlDataAdapter1.SelectCommand.CommandText = "SELECT * FROM excol_data WHERE car_id = filterIdcarF2"
だと動いてくれないようです・・・。なにか書きようがあるのでしょうか?

268:デフォルトの名無しさん
04/07/26 19:58
>>267
困ってるのはわかるが、落ち着いて VB の入門書と SQL の入門書を読んだ方が
結局は早いと思うよ。

269:デフォルトの名無しさん
04/07/26 21:50
SqlDataAdapter1.SelectCommand.CommandText = "SELECT * FROM excol_data WHERE car_id = " + filterIdcarF2 + " and car_id = " + filterIdcarF3 + " and excol_cd = 5"


270:デフォルトの名無しさん
04/07/26 22:52
VBAって次に VBA.NET になるんですかね。

271:デフォルトの名無しさん
04/07/27 00:42
String の配列に入っているテキストデータを TextBox で編集しようと思って,

Dim List(200 ) As String
で,

TextBox1.Text = ""
For a=0 To List.GetUpperBound(0)
TextBox1.text &= List(a) & vbCrLf
Next

のようにしましたが,編集後のテキストデータを再び Stringの配列に
戻すところでつまりました.

このような,何かのプログラム内での プチエディタ なんかは,
どういう風に実現するのが良いのでしょうか?

272:デフォルトの名無しさん
04/07/27 00:58
>>271
配列をそのままTextBox.Linesプロパティに入れて、編集後にTextBox.Linesをそのまま配列に戻すのは駄目なん?
的外れだったらスマソ。

273:デフォルトの名無しさん
04/07/27 01:22
>>272
おおっ. そんなものがあったのか.
ご教授ありがとうございました.

テキストデータの行数がいろいろ変わるので,
やっぱり For文 で回したほうがいいみたいでした.

とにかく解決.ありがとうございました.

274:デフォルトの名無しさん
04/07/27 13:35
>>272 さんのおかげで少し進んだのですが,,,
今度は,TextBoxのカーソル位置を表示してみようと思いまして,,で,

 Cur = TextBox1.SelectionStart
 If Cur <= 0 Then
  y = 1 : x = 1
 Else
  c = 0 : y = 0
  Do
   x = Cur - c
   c += TextBox1.Lines(y).Length + 2
   If Cur < c Then Exit Do
   y += 1
  Loop
  For xx = x - 1 To 0 Step -1
   If AscW(TextBox1.Lines(y).Substring(xx, 1)) >= 256 Then x += 1
  Next
  y += 1 : x += 1
 End If
 Label1.Text = y & "行 " & x & "桁"

こんなんになってしまったのですが,これだと 各行の文字数を先頭から
足して来たり,各文字が全角かどうか一文字ずつ調べたりしてて,
TextBox の文字数が多くなると遅そうですよね.
他にスマートな方法があれば教えていただきたいのです.

275:デフォルトの名無しさん
04/07/27 13:45
picture clip controlは.NETには入ってないのでしょうか?

276:216
04/07/27 16:42
>>217
ヒントありがとうございます
キーフック自体わからず調べながらやってみたのですがなかなかうまくいきません。

SetWindowsHookExtというAPIでキーボードのメッセージを捕捉できるところまで行ったのですが
次に自分でPostMessageで別のキー入力を起こそうと思っているのですがここがダメです。
今フォームにテキストボックスが1コはっつけてやってみています

Function KeyBoardProc(ByVal nCode As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
If nCode < 0 Or nCode = 3 Then
Return CallNextHookEx(m_hHook, nCode, wParam, lParam)
End If
Dim ret As Integer
Dim iMsg As Integer
If wParam = CInt(Keys.A) Then
If lParam And &H80000000 Then
iMsg = WM_KEYUP
Else
iMsg = WM_KEYDOWN
End If
wParam = Keys.E
PostMessage(TextBox1.Handle.ToInt32, iMsg, wParam, lParam)
CallNextHookEx(m_hHook, nCode, wParam, lParam)
Return 1
End If
End Function
TextBox1のIMEモードはひらがなにしてあります。

aのキーを打つとeがテキストに入るのですがほんとは「え」と入ってIMEで変換できる状態(えの下に点線の下線)になって欲しいのです。
的外れと思いつつImmGetContextの返値をPostMessageの第一引数にしてみましたがさっぱりでした。
何がいけないのか教えてください。

277:216
04/07/27 16:44
>>276

ヒントを頂いたのは
>>217ではなく
>>218でした
というか217は自分でした・・・

278:デフォルトの名無しさん
04/07/27 16:54
>>274
Win32API使ってもOKなら、user32.dllのGetCaretPosでいける。
URLリンク(do.sakura.ne.jp)
ここの>>32にC#版がある。

279:デフォルトの名無しさん
04/07/27 20:32
URLリンク(do.sakura.ne.jp)

280:デフォルトの名無しさん
04/07/27 21:28
>>278 >>279
C# がわからないのでいろいろ苦労しました.
いや,C# の問題じゃなくて,Win32API ってやつの方かな.
ヘルプとかいろいろ調べてやっとできました.
Win32API ってのは初めての経験なもので...

Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hWnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer

ってのを作っといて,

 y = SendMessage(TextBox1.Handle, &HC9, -1, 0)
 x = TextBox1.SelectionStart - SendMessage(TextBox1.Handle, &HBB, y, 0)
 For xx = x - 1 To 0 Step -1
  If AscW(TextBox1.Lines(y).Substring(xx, 1)) >= 256 Then x += 1
 Next
 y += 1 : x += 1
 Label1.Text = y & "行 " & x & "桁"

って感じでできたみたい.
全角文字のカウントは残りましたが,だいぶ速くなりました.
どうもありがとうございました.

281:デフォルトの名無しさん
04/07/27 23:34
ちと教えてください。

CrystalReport に Textオブジェクト を作って、そこにモジュールレベル変数
(String型)の内容を埋め込むには、どうしたら良いでしょう?

Accessのレポートなら作ったことあるんですが、
CrystalReport はちょっと勝手が違うん困ってます。

お願いします。

282:デフォルトの名無しさん
04/07/27 23:51
>>281
データソースはDB?
それとも実行時に任意に与える数値?

283:281
04/07/28 00:16
>>282

レポートそのものは、AccessDBからフィールドを引っ張ってますが、
表題の部分に、任意の文字列を入れたいのです。

別フォームでその文字列を変数に格納して、レポートに表示したい
という訳です。


284:デフォルトの名無しさん
04/07/28 00:42
標準入力・出力するコマンドラインで動くアプリケーションがあるんだけど、
それとVB.NETでやりとりすることできるかな?

(ひらたく言えばVB.NETってパイプ使える?)

285:デフォルトの名無しさん
04/07/28 00:49
標準入出力とのやりとりならできる。

286:デフォルトの名無しさん
04/07/28 01:10
>>285
そうですか。できれば方法も教えてもらえると助かるのですが。
「~~というクラスを使え」とか・・・

287:デフォルトの名無しさん
04/07/28 01:11
ヘルプで検索すれば出ると思うが…
ProcessクラスとかProcessStartInfoとか参照。

288:デフォルトの名無しさん
04/07/28 01:13
>>287
ありがとうございます。
そこまで教えてもらえればあとはググるなりMSDN使うなりしてなんとかしてきます。


289:デフォルトの名無しさん
04/07/28 01:59
>>287
解決しました。ありがとうございます

290:デフォルトの名無しさん
04/07/28 02:30
>>281
スマン
遅くなりマスタ

表題って言うことは1枚目のレポートヘッダと解釈していいのかね?
仮にSection1にText1というテキストボックスがあったとして

Dim cr As New CrystalReport1
Dim t As CrystalDecisions.CrystalReports.Engine.TextObject
t = CType(cr.Section1.ReportObjects.Item("Text1"), CrystalDecisions.CrystalReports.Engine.TextObject)
t.Text = "123"


cr.ExportToDisk(CrystalDecisions.[Shared].ExportFormatType.PortableDocFormat, "c:\123.pdf") '結果を出力

パラメータフィールドを使う方法とか色々やり方はあると思うので
自分はまるまるXMLから取得する方法でやってます




291:デフォルトの名無しさん
04/07/28 13:44
FlexGrid.Netを使ってるのですが
ある日を境に
デザイン時は最新バージョン
実行時は古いバージョン
をロードしてしまいます

VSの再インストールやFlexGridの最インスコなどいろいろやってみたんですが・・・

binフォルダ内と標準インストール先のフォルダには最新バージョンの 2.1.20032.135 が
実行時にはなぜか一つ前の 2.1.20032.124 が読み込まれています

292:デフォルトの名無しさん
04/07/28 14:21
Windowsアプリケーションから、
任意のsqlスクリプト(ファイル名.sql)を読み込んで
実行させることって出来ますか?

293:291
04/07/28 16:05
C:\WINNT\ASSEMBLY
の情報を書き換えたらうまくいきました

294:デフォルトの名無しさん
04/07/29 17:20
VB.NETで他フォームを参照するにはどうすればよいのでしょうか?
例えば、form1とform2があったとき、
form1からform2のコントロールを直接取得したいのです。

BorlandC++のときは、実行中のフォームのインスタンスを参照できた
のですが、VB.NETではそれが見あたりません・・・
よいアイディアがありましたら教えて頂けると
大変助かります。よろしくお願いいたします。

295:デフォルトの名無しさん
04/07/29 17:47
>>294
Form1の中に、
Form2 form2 = new Form2();
form2.hoge = "Hage";
って感じでどうですか?

296:デフォルトの名無しさん
04/07/29 17:49
上のほうでVB.NETでブラウザ作ってた人はどうなったんだろう?
なにげに気になってたんだがw

297:デフォルトの名無しさん
04/07/29 18:22
どこかにVB.NET(2003)を使って、シリアルポートからデータを受信して表示するプログラムの
ソースが公開されていませんでしょうか?

CreateFile とか ReadFile とかのAPIを使うっていうのはわかっているのですが、
公開されているのを見ると
Public Declare Function WriteFile Lib "kernel32" Alias "WriteFile" _
(ByVal hFile As Integer, lpBuffer As Any, _
とか書いてあって(As AnyはVB.NETでは使えない)
そのままだと使えないんです。

VB6のMSCommを使えばいいのかもしれませんが、APIを使いたいのです。



298:デフォルトの名無しさん
04/07/29 18:27
>>297
なぜVBにこだわる?


299:デフォルトの名無しさん
04/07/29 18:31
>>298
つっか、APIたたくならC#でもVBでもC++でも答えは似たようなもんでしょ。
あと、VBが一番安いんだっけか?


300:デフォルトの名無しさん
04/07/29 18:43
>>297
その程度のことでいちいち人に聞いてるレベルじゃ、
まず間違いなくファイルI/O系のAPI使いこなすなんて無理だと思う。

ほかのスレでこんなの見つけたけど、これなんか使えるのでは?
URLリンク(www.gotdotnet.com)

>>294
久々に「別フォームの……」キター

301:デフォルトの名無しさん
04/07/29 18:45
As Any って As Object で代用できなかったっけ?

302:デフォルトの名無しさん
04/07/29 19:54
どこかにVB.netのゲームサンプルがある場所ってありますでしょうか?

303:294
04/07/30 00:48
>>295
ありがとうございます。
でもそれだと実行中のフォームじゃなくなってしまうので
ダメなんですよね・・・


304:デフォルトの名無しさん
04/07/30 01:34
>>303
インスタンスの扱いが理解できてるなら、Form2のインスタンス作成時に
参照をとっておけばどうにでもなることくらい分かりそうなもんだが…

305:デフォルトの名無しさん
04/07/30 02:07
Form2ってどの段階で表示(生成)されるの?
もしかして別EXE?

306:デフォルトの名無しさん
04/07/31 00:04
>>302
難しいなぁ。どんなゲームがいいんだ?

307:デフォルトの名無しさん
04/07/31 03:51
フォームロードイヴェントのときにそのアプリのプロセスIDを取得するのはどうやるのでしょうか?

308:デフォルトの名無しさん
04/07/31 04:59
Velocityのようなテンプレートエンジンってないの?
フリーの。

309:デフォルトの名無しさん
04/07/31 08:47
>>307
フォームロードのときというのに深い意味があるのか?
ただ単にプロセスIDのとり方が分からんだけとか?

310:デフォルトの名無しさん
04/07/31 13:27
Math.Cos(90 / 180 * 3.1415) を実行すると
4.63267948799578E-05   という数値になります。
0または0に近い数値にしたいのですが、どうすればいいのでしょうか?
90の部分は0~360度の中で変動、0度=1、90度=0、180度=-1、270度=0という結果を出したいのですが・・。
同様にMath.Sinでも変な数値にorz

311:デフォルトの名無しさん
04/07/31 13:46
>>310
小数点以下3桁くらいで四捨五入しろ


312:デフォルトの名無しさん
04/07/31 13:48
>>310
π = 3.1415
としているのが原因

313:デフォルトの名無しさん
04/07/31 14:05
>>311-312
返答ありがとうございます。

311の通りにしたら数値が0になったので、桁数が多すぎると表示がおかしくなる・・・でいいのかな。

314:デフォルトの名無しさん
04/07/31 14:14
>>313
違う違う、有効数字の考え方を勉強して来なさい。

315:デフォルトの名無しさん
04/07/31 14:15
いや、むしろ10万桁ぐらいまで

316:デフォルトの名無しさん
04/07/31 14:20
もしかして
4.63267948799578E-05
の意味分かってないとか?

317:デフォルトの名無しさん
04/07/31 14:25
>>316
いや、それを変数に入れて計算したら、
4.63267948799578が数値として考えられたのか、ただの回転がとんでもないことにナターヨorz

318:デフォルトの名無しさん
04/07/31 14:25
つまり
π = 3.1415
のときに
0.0000463267948799578
ってことだから、
π = 3.141592653589793
くらいまで取ればもっと0に近づく


319:デフォルトの名無しさん
04/07/31 14:28
いや、浮動小数点数だから「変な数値」になることにはかわりないか?

320:デフォルトの名無しさん
04/07/31 15:19
Perlユーザーには基本を知らない人間が多いのは知ってるし
自分も最初はそうだったから人の事は言えないが、
実際にそういう場面に出くわすと疲れるな。

今、基本情報処理の試験受付してるぞ。
基礎を身につける意味で、受験&勉強してみたらどうだ?

321:デフォルトの名無しさん
04/07/31 15:29
すまん、スレ誤爆した。orz

322:デフォルトの名無しさん
04/07/31 19:35
>>308
ない

323:4.63267948799578E-05
04/07/31 22:05
スマソ、やっぱ根本的なプログラムミスですたorz

とりあえず立体モデルの回転をさせようと思っています。
URLリンク(member.nifty.ne.jp)
ここの3番までをしようと思っているんですが、2番目の『初期状態】は
Dim A()() as Double = {{1.0 .0.0, 0.0},{0.0, 1.0, 0.0},{0.0, 0.0, 1.0}}
でいいのでしょうか?
そのあとの『M = A×M』はVB.netで表すとどうなるのか、そもそも『M』の値が分かりません・・・。
分かる方がいれば教えてください。
(ちなみにゆとり教育云々で数学の教科書には回転行列のことなんてませぬorz)

324:デフォルトの名無しさん
04/07/31 22:41
それはプログラミングって言うより線型代数の問題じゃないのか

325:デフォルトの名無しさん
04/07/31 23:16
>>323
ちゃんと読んでないのでちょっと良くわからないけど,
3番の M は 2番で言う A のことではないかな?
M が機体の 前上右ベクトルなんだと思う.
なので,M の初期値は,2番での Aの初期値とかでいいでしょう.

M = A × M は,普通の3行3列の行列演算.
行列演算がわからないなら,自分で調べるか,
もう一度ここで泣くかしなさい.

326:4.63267948799578E-05
04/07/31 23:43
>>325
前者了解しますた。
一番肝心なのは後者のほうですね・・・検索しても分かりませんでした、分かる方助言をお願いしますorz
M[0][0]はA[0][0]とM[0][0]からM[2][2]をかけて足したもの?
もうさっぱりです(´-ω-`;)

327:デフォルトの名無しさん
04/07/31 23:52
3次元関連の入門書読め。
ゆとり教育って…行列の掛け算も載ってないの?
まあ、なんでも教科書に載ってると思う方が間違ってるともいえるが。

328:デフォルトの名無しさん
04/08/01 00:12
>>327
僕も指数表現とか行列演算は,プログラム作るために勉強したので,
326のいいきっかけになれば良いじゃん.
このホームページには冒頭に3D関係の本に載ってないと書いてあるが,
それでも,3DCGの基礎は知っとかんとこの先詰まるので,
>3次元関連の入門書読め。
には賛成.

>>326
これじゃだめ?
URLリンク(shigihara.hp.infoseek.co.jp)
URLリンク(www.matsusaka-u.ac.jp)

ただし,プログラムでやるときは,
T = A × M
M = T
みたいにやらないとだめだよ.

329:4.63267948799578E-05
04/08/01 00:17
>>327
DirectXの本が何冊かあるけど、どれも行列を使ったサンプルはなくSetRotation・・・。
DirectXはスレ違いだけどVBで作っているからcppのサンプルは使えないしでもうダメポ(つД`;)
それと2*2の行列の計算すら載ってませんでした。。

330:デフォルトの名無しさん
04/08/01 02:44
VBでエクセルをいろいろいじりたいんですが
参考になるサイトってありますか?

331:4.63267948799578E-05
04/08/01 02:50
>>330
URLリンク(www.bcap.co.jp)


・・・orz

332:4.63267948799578E-05
04/08/01 03:28
Microsoft® Visual Basic® アプリケーションでは、Direct3DX ユーティリティ ライブラリによって提供される D3DXMatrixRotationX 関数、D3DXMatrixRotationY 関数、および D3DXMatrixRotationZ 関数を使って回転行列を作成する。
ここまで分かったけど、そこの見えない谷に阻まれてまs orz

333:デフォルトの名無しさん
04/08/01 06:56
Rは登録商標だが、TMは何?

334:デフォルトの名無しさん
04/08/01 07:43
>>332
Direct3D で回転させるの? 自分で行列演算して回転させるの?
とくに実現方法にこだわらないなら,いろいろ調べてできそうなやつで
やれば良いんだけどね.
そもそも 3D→2D を Direct3D でやるか 自分で写像するか..
Direct3D のほうが速いと思うけど.

>>333
トレードマークでしょ.って,これは誤爆なのかな?

335:デフォルトの名無しさん
04/08/01 08:00
トレードマークって?

336:デフォルトの名無しさん
04/08/01 08:17
TM - Trade Mark 商標?
R - Registered (Trade Mark) 登録商標?


337:デフォルトの名無しさん
04/08/01 09:27
どっちがえらいの?

338:デフォルトの名無しさん
04/08/01 10:36
たぶん 登録商標 のほうがえろいと思うけど.
ここじゃなくて,法律関係の掲示板に行ったほうがいいと思うよ.

339:4.63267948799578E-05
04/08/01 14:04
結局使い方が分からない罠orz

>>334
方位・角度・ロールを正確に表示しつつ回転させると、やはり回転行列を使わないと・・・。
少しロールさせた状態で機首を上げると、角度と方位が変わるとともにロールもする。
この表現にもう一ヶ月近く悩まされてますorz

340:デフォルトの名無しさん
04/08/01 22:09
>>339
じゃ >>323 のホームページにある3番のJavaプログラムみたいなものが
VB でできればいいの?
それくらいなら協力できるかも.

341:4.63267948799578E-05
04/08/01 22:36
>>340
まったくもってその通りです、できる範囲でいいので協力お願いしますorz
数学板ではなぜか叩かれるし、ここでは反応が薄いし・・・回転行列は以前何かあったのかな・・・。


342:デフォルトの名無しさん
04/08/01 22:56
はっきり言って無理だと思われ。
他人に甘えてる態度が見え見え。
とても自分で努力しているようには見えない。
きっと数学板で叩かれてきたってのもそういう部分なんじゃないの?
基本を疎かにして上辺だけ習得しようって考えているなら、ずっと習得はできないよ。

343:4.63267948799578E-05
04/08/01 23:16
>>342
去年同じようなことをFlash板で言われますた。。
努力しろ!って言われても検索するところはしたし、
自分でこれかな?って思ったのは作って砕けてるしでどうしろと(;´Д`)
行列は学校で習っているものと思われているけど、最近は習わないところが多々あるので基本とか言わないでくださいorz

344:デフォルトの名無しさん
04/08/01 23:22
>343
その辺が根本から間違ってるんだって。
「どうしろと」じゃねーよ、自分で考えるんだよ。
学校でなんでもかんでも教えてもらえると思うな、自分で調べるんだよ。
なんでも誰かに教えてもらうと考えるな。
だから叩かれるんだよ。

345:4.63267948799578E-05
04/08/01 23:27
>>343
> 「どうしろと」じゃねーよ、自分で考えるんだよ。
> 学校でなんでもかんでも教えてもらえると思うな、自分で調べるんだよ。

> 努力しろ!って言われても検索するところはしたし、
> 自分でこれかな?って思ったのは作って砕けてるしでどうしろと(;´Д`)
頼むから飛ばして読まないでorz
てか釣りだったらスマソ

346:4.63267948799578E-05
04/08/01 23:28
こっちでも矛先間違えたorz

347:340
04/08/01 23:30
>>341
こんなのを作ってみた. 新しいプロジェクトにはっつけてみ.

Dim LocX As Double = 150
Dim LocY As Double = 0
Dim LocZ As Double = 100
Dim M(,) As Double = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}

Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
Dim Fx, Fy, Fz As Single ' 鼻先
Dim Bx, By, Bz As Single ' おしり
Dim Lx, Ly, Lz As Single ' 左翼端
Dim Rx, Ry, Rz As Single ' 右翼端
Dim Tx, Ty, Tz As Single ' 尾翼
Dim gr As Graphics = MyBase.CreateGraphics

If e.KeyChar = "f" Then ' 前進
LocX += 10 * M(2, 0) : LocY += 10 * M(2, 1) : LocZ += 10 * M(2, 2)
Else
Dim A(2, 2) As Double
Dim T(2, 2) As Double
If e.KeyChar = "r" Then ' 右を向く(ラダーというか自転)
Dim th As Double = 22.5 * Math.PI / 180
Dim R(,) As Double = {{Math.Cos(-th), 0, -Math.Sin(-th)}, {0, 1, 0}, {Math.Sin(-th), 0, Math.Cos(-th)}}
A = R
End If
If e.KeyChar = "u" Then ' 上を向く
Dim th As Double = 5 * Math.PI / 180
Dim R(,) As Double = {{1, 0, 0}, {0, Math.Cos(-th), Math.Sin(-th)}, {0, -Math.Sin(-th), Math.Cos(-th)}}
A = R
End If
つづく

348:340
04/08/01 23:30
T(0, 0) = A(0, 0) * M(0, 0) + A(0, 1) * M(1, 0) + A(0, 2) * M(2, 0)
T(0, 1) = A(0, 0) * M(0, 1) + A(0, 1) * M(1, 1) + A(0, 2) * M(2, 1)
T(0, 2) = A(0, 0) * M(0, 2) + A(0, 1) * M(1, 2) + A(0, 2) * M(2, 2)
T(1, 0) = A(1, 0) * M(0, 0) + A(1, 1) * M(1, 0) + A(1, 2) * M(2, 0)
T(1, 1) = A(1, 0) * M(0, 1) + A(1, 1) * M(1, 1) + A(1, 2) * M(2, 1)
T(1, 2) = A(1, 0) * M(0, 2) + A(1, 1) * M(1, 2) + A(1, 2) * M(2, 2)
T(2, 0) = A(2, 0) * M(0, 0) + A(2, 1) * M(1, 0) + A(2, 2) * M(2, 0)
T(2, 1) = A(2, 0) * M(0, 1) + A(2, 1) * M(1, 1) + A(2, 2) * M(2, 1)
T(2, 2) = A(2, 0) * M(0, 2) + A(2, 1) * M(1, 2) + A(2, 2) * M(2, 2)
M = T
End If

Fx = LocX + 30 * M(2, 0) : Fy = LocY + 30 * M(2, 1) : Fz = LocZ + 30 * M(2, 2)
Bx = -10 * M(2, 0) : By = -10 * M(2, 1) : Bz = -10 * M(2, 2)
Lx = LocX - 20 * M(0, 0) + Bx : Ly = LocY - 20 * M(0, 1) + By : Lz = LocZ - 20 * M(0, 2) + Bz
Rx = LocX + 20 * M(0, 0) + Bx : Ry = LocY + 20 * M(0, 1) + By : Rz = LocZ + 20 * M(0, 2) + Bz
Tx = LocX + 10 * M(1, 0) + Bx : Ty = LocY + 10 * M(1, 1) + By : Tz = LocZ + 10 * M(1, 2) + Bz
Bx += LocX : By += LocY : Bz += LocZ
gr.Clear(MyBase.BackColor)
gr.DrawLine(Pens.Black, Fx, Fz, Bx, Bz)
gr.DrawLine(Pens.Black, Fx, Fz, Rx, Rz)
gr.DrawLine(Pens.Black, Fx, Fz, Lx, Lz)
gr.DrawLine(Pens.Black, Rx, Rz, Lx, Lz)
gr.DrawLine(Pens.Blue, Tx, Tz, Bx, Bz)
gr.DrawLine(Pens.Blue, Tx, Tz, CSng(LocX), CSng(LocZ))
End Sub

349:4.63267948799578E-05
04/08/01 23:33
本当にありがとうございますorz
後ほど結果を書きますね(知らないのがいっぱい(;´Д`))

350:デフォルトの名無しさん
04/08/01 23:34
>345
ちゃんと読んでるよ。
じゃあ聞くが、検索以外には何をした?
書籍を調べたか?
図書館に行ったか?
検索をしたのは1ヶ月で何回だ?

これかな?と思って作ったものはどこがなぜダメなのか考えたのか?
それに対して色々と検証はしてみたのか?
検証をしたならその結果をまとめてあるか?

基本を学べ。
人生の基本を。
調べ方の基本を。

351:340
04/08/01 23:37
>>341
>数学板ではなぜか叩かれるし、

叩かれて当然なくらい簡単なことを聞いてるからだと思うよ.
まぁ,ここから勉強すればいいじゃん.

で,上のプログラムだが,行列の掛け算は展開して書いてある.
もう間違えようがないよな.なっ?

キーボードの f で前進, r で右向く, u で上向く.
左向く,下向く,ロール は自分でトライして.

352:4.63267948799578E-05
04/08/01 23:41
>>350
本は3冊買いますた、プログラムをやってる先生にも聞きました(でも昔やったが忘れた、とorz)。
検索はほぼ毎日してます、ダメな部分を変えていったら地獄の一丁目にたどり着きますた。。
一度書いてやってから組んでいるからノートの半分以上は埋まったし・・・基本と言われることはしてます。
受験勉強せずになにしてんだか(;´Д`)

353:340
04/08/01 23:46
>>349

ちょっとバグってた.
予定してないキーを押すと機体が消える.
とりあえず↓のようにしとけば回避できる.

× Dim A(2, 2) As Double
○ Dim A(,) As Double = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}


354:4.63267948799578E-05
04/08/01 23:51
>>340
改めてありがとうございました。
これこそ基本だと言われることなのですが、
指定されたキー以外を押すと止まってしまう(そのあと何を押しても動かない)のはなぜなんでしょうか。
自分はselect case ~でやっているので他のキーを押しても何も起こらないだけなのですが。


355:4.63267948799578E-05
04/08/01 23:52
>>353
って先に直してくれてましたね、度々ありがとうございます。

356:デフォルトの名無しさん
04/08/01 23:52
VB.NETでaspxを書くときは

サーバープログラムとHTML部分のどちらをうえに書くのがおすすめですか?

<script runat=server>
</script>

逆にしてもいいけどどちらがファイルをWindowsメモ帳で編集するときに楽か

<html>
</html>

357:340
04/08/02 00:01
>>355
実は右翼端と左翼端の座標も逆みたい.
想定座標系の裏返しに表示されてる.
ちゅーことは,右回転しているようで実は左回転してた.
よく検証せずに出してすまんね.

358:4.63267948799578E-05
04/08/02 00:07
円周率はMath.PIでokだったのか・・・>>312のはこのことを言ってたのかorz

359:デフォルトの名無しさん
04/08/02 00:08
>>352
…お前は多分基本の意味を勘違いしてるだろ。
分からない事を基礎となってる部分から一つ一つ解決していけ。
まず行列の計算が分からない、理解できないんなら、
行列について勉強しろ。
それが出来たら3D関連の基礎的な本やサイトを見れば、
行列と言う物が3Dでどのように利用されるのか分かる。
プログラミングはその上で行う物だ。

お前はダメなところを変えていったというが、適当に式を変えてみたとか、
そんなんだろ?
なぜおかしいかを論理的に考えて間違ってる場所を探したか?
なんとなく適当に買えながら動かしてちゃんと動くのを待つ
ではいつまでたってもちゃんと動かないぞ。

360:340
04/08/02 00:11
2度目の修正.

"r"押したときの R(,) の値
Dim R(,) As Double = {{Math.Cos(-th), 0, Math.Sin(-th)}, {0, 1, 0}, {-Math.Sin(-th), 0, Math.Cos(-th)}}

と,表示のとこ.
gr.DrawLine(Pens.Black, Fz, Fx, Bz, Bx)
gr.DrawLine(Pens.Brown, Fz, Fx, Rz, Rx)
gr.DrawLine(Pens.Black, Fz, Fx, Lz, Lx)
gr.DrawLine(Pens.Black, Rz, Rx, Lz, Lx)
gr.DrawLine(Pens.Blue, Tz, Tx, Bz, Bx)
gr.DrawLine(Pens.Blue, Tz, Tx, CSng(LocZ), CSng(LocX))
わかりやすいように右翼を茶色にしてみた.

内部では,x-z が水平でy軸が上になってる.
表示は,手抜きで,x-z 平面を グラフィクスの y-x にそのまま表示してる.

361:デフォルトの名無しさん
04/08/02 00:11
>そんなんだろ?
ああっと、勝手に決め付けてるようで悪いが、
お前の言動を見てるとそういう匂いがしたんだ。

362:359=361
04/08/02 00:13
あ、進めてるところに水をさす気はないので続けてくれ。

363:340
04/08/02 00:31
>>362
はい.
あなたの言うこともわかるのですが,この辺にしといてあげましょうよ.
これからいろいろ学んで立派になってくれることを祈りつつ.

で,ぼくはもう眠いので,ロールのところを書いて寝ます.

If e.KeyChar = "p" Then ' 右ロール
Dim th As Double = 10 * Math.PI / 180
Dim R(,) As Double = {{Math.Cos(-th), Math.Sin(-th), 0}, {-Math.Sin(-th), Math.Cos(-th), 0}, {0, 0, 1}}
A = R
End If

おやすみなさい.

364:4.63267948799578E-05
04/08/02 00:53
>>340
色々手直し・追加ありがとうございます。
明日(今日)早いので帰ってきたらじっくり勉強させてもらいます。

>>361
分かってから振り返れば『そんなんだろ?』というレベルかもしれませんが、
検索するべき単語もハッキリ分からず模索している段階からみればそんな一言で片付けれるものじゃないっすorz
回転はおかしいけど悩みながら進行方向に動かしたり、直線だけどミサイルを飛ばしたりはできたんだけど・・・。
ほんと回転だけは悩まされましたorz

365:デフォルトの名無しさん
04/08/02 01:38
2次元の回転行列A=
{ cosΘ , -sinΘ }
{ sinΘ , cosΘ }

これを3次元に展開すればX軸回転、Y軸回転、Z軸回転が作れる。
例えばX軸回転(YZ平面回転)の場合、B=
{ 1 , 0 , 0 }
{ 0 , cosΘ , -sinΘ }
{ 0 , sinΘ , cosΘ }
となる。

それぞれ式に直すと
x'=x
y'=y*cos(r)-z*sin(r)
z'=y*sin(r)+z*cos(r)
となる。

Y軸回転、Z軸回転は自分で考えてみそ。

366:デフォルトの名無しさん
04/08/02 06:11
>364
>検索するべき単語もハッキリ分からず模索している段階からみれば
そこだよ。
基本がわかってないからそうなる。

あと、他人の意見を素直に受け入れられないなら、人に聞いても何も得られないよ。

367:デフォルトの名無しさん
04/08/02 17:46
すいません。質問させていただきますー

Console.WriteLine(result) をつかって、resultの中身を確認したいんですが、
どうやって確認したらいいんでしょうか。Msgbox()のようにダイアログが出る
わけでもないようなんですが。。。よろしくお願いします。


368:デフォルトの名無しさん
04/08/02 18:12
出力 ウインドウを確認

369:367
04/08/02 18:34
>>368
お答えありがとうございます! なにやら超基本的なことを聞いてしまった
みたいですいません。助かりました。

370:デフォルトの名無しさん
04/08/02 22:19
何となく、ConsoleとDebugとかTraceを混同しているような気がしないでもない。

371:4.63267948799578E-05
04/08/02 22:27
>>365
ありがとうございます。
野暮用(宿題)が増えたのでこっちに集中することはできませんが、
>>340さんのおかげで突破口ができたのでこれや調べたのを参照しつつ早く理解できるようにがんばります。

>>366
全く知らない範囲を基本と言わないでとorz
言われたことは既にやってるし、調べて試すと言う基本的なことも想像されてる以上にやってます。
ただ論理的っていう部分だけは除きますが・・・
(・・・分からない部分が論理的に考えることができたら、そりゃ理解できてるじゃんとか突っ込みたくなる(;´Д`))

大変申し訳ないのですが、レスのたびにどっかの文で人の努力を簡単に踏みにじってる印象を受けたので反論しています。
質問側で甘えてしまっている立場でほんと申し訳ないのですが、
> あと、他人の意見を素直に受け入れられないなら、人に聞いても何も得られないよ。
を返すとしたら
・他人を理解していなければ、その人が意見を素直に受け入れることは無理
全部を理解しろと言うわけではないけど、この大変さだけでも理解して欲しかったですorz
大変な中で叩かれると相当きつい。。
立場を弁えてないレス失礼しました。

372:デフォルトの名無しさん
04/08/02 22:32
>371
>>359,>>361に同意
何が基本かもわからないのは物事の本質を論理的に考えられないから

373:デフォルトの名無しさん
04/08/02 22:34
×「分からない部分が論理的に考えることができたら」
○「自分が何を分かっていないかを論理的に考える」
この時点で間違いだらけ。

374:デフォルトの名無しさん
04/08/02 22:39
>・他人を理解していなければ、その人が意見を素直に受け入れることは無理
ここは2chだ。
理解するべきことは「誰の発言か」ではなく「どんな内容か」それだけだ。
他人を理解できないと意見を受け入れられないなら2chで聞く事自体が間違い。
匿名掲示板で名も素性も知らぬ他人を理解できると思っているならお前は大馬鹿。
目を覚ませ。
今から考えを改めれば5年後にはまともな人間になれるかもしれないぞ。

375:デフォルトの名無しさん
04/08/02 22:53
偉そうな事を言ったのは謝る。
どうもお前みたいな甘えた奴見てるとイライラするんだ。
社会に出る前に論理的思考を身につけとけ。
俺はお前を不幸にしたいわけじゃない。
お前の周囲の人間が不幸になってしまうのを憂いているだけだ。
論理的思考を身に付けろ。
そうすればほんの少しでもみんな幸せになれる。

376:デフォルトの名無しさん
04/08/03 08:42
社会に出て本当に必要なのは
論理的思考力なんかではなく、他人に優しくできる心である


と、言ってみる。

377:デフォルトの名無しさん
04/08/03 09:46
社会は大部分の論理的思考の足りない奴らで構成されている。
論理的に問題解決しようとする俺らのほうが ちょっとおかしい人間 なんだよ。

ところで Boolean型 って何のためにあるんだ?
いや、まじめなはなし。

378:デフォルトの名無しさん
04/08/03 09:55
イエス・ノーをはっきりさせたいアメリカ人のため

379:デフォルトの名無しさん
04/08/03 10:32
>>377
コンピーターの基本動作は何かを考える

380:デフォルトの名無しさん
04/08/03 10:45
>>379
コンピュータの基本動作は理解しているつもりだが。
いや、そう言う意味じゃなくて、昔の BASIC には
なかってでしょ。
CPUが特別に持っている型でもないし、
技術的に何の意味があるのかという ちょっとした疑問。

>>378 みたいな答えはまぁ、納得するしかないね。

381:デフォルトの名無しさん
04/08/03 11:00
>>380
CPUにはフラグレジスタがある。
昔のBASICでBoolean型がなかったのは、ON/OFFだけで
変数1個分のメモリ使うのはもったいなかったからじゃないかな。
数値のままならbit数分だけ使えるし。
まあ、文中で論理式という形ではあったと言えるかも。
X=X+(K$="4")-(K$="6")

この話題は、こっちのスレのほうがよかったか。
MicrosoftBASIC総合談話室
スレリンク(tech板)

382:デフォルトの名無しさん
04/08/03 15:13
例えばaという通信の受信オブジェクトとF1、F2、F3の3つのフォームがあります。

受信したデータの処理で、3つのフォームそれぞれにaを置けば全く問題は無いのですが、
aを1つだけにして、受信イベント時に受信データを見て、
それぞれのフォームに振り分けたいとしたら、
どんな方法が一般的なのでしょうか?

383:デフォルトの名無しさん
04/08/03 16:15
>>382
普通にイベントを起こせばいいんじゃない?

384:デフォルトの名無しさん
04/08/03 17:35
前々から気になってたことなんですが
新規にフォームモジュールを作成するときに
Option Explicit On などを自動的に付加することって出来ますか?
プロジェクトのプロパティではOnになってるんですが
反映されないんです・・・


385:デフォルトの名無しさん
04/08/03 19:03
>>384
Option Explicit On って変数宣言の必要になるやつだよね。
ぼくは、普通に常に On になってるけど。
ツールのオプションのプロジェクトのとこだよね? ふしぎー。

386:デフォルトの名無しさん
04/08/03 19:17
>>381
>CPUにはフラグレジスタがある。
まぁ、確かに。 レジスタの退避命令使えば一応メモリ上にも置けるしね。

>まあ、文中で論理式という形ではあったと言えるかも。
んと、それは論理演算子のことで、Boolean型ではないですね。
論理演算子の演算結果が、昔は 整数型 だったのが
VB では Boolean型 になってる。

>この話題は、こっちのスレのほうがよかったか。
>MicrosoftBASIC総合談話室
あっ、ごめんごめん。
みんな暇そうだったから、疑問に思ってたことを言ってみただけ。
(えっ? 暇じゃないって? もっと ごめんごめん。)

387:デフォルトの名無しさん
04/08/03 19:27
>377
規格統一じゃない?
プログラマによって、TRUEを1とするか-1とするか分かれたりするし。

388:デフォルトの名無しさん
04/08/03 22:56
>>386
>んと、それは論理演算子のことで、
間違えた。「比較演算子」だった。

>>387
BASICによって、比較演算の結果が 1 のやつと -1 のやつが
あったからね。 C言語だと 1 だね。

そろそろ 次の相談者登場の予感。

389:デフォルトの名無しさん
04/08/03 23:55
次の相談です。
ちょと過去ログにみつからなかったんですが、バルーンチップって
どうやって出したらいいんでしょうか。
ステータスバーのところに「バックグラウンド処理が終わりました」
みたいなのを吹き出しで表示したいので、だから
ツールチップみたいにオートで出る奴じゃなくて、任意のタイミングで
任意の場所に出せるツールチップが欲しいのです。
InputMan.netは「バルーンチップ付きコントロール」はあるけど
バルーンチップ単独のコントロールはなさそうだし。

昔は論理式の「真が-1」を利用して、テンキー移動の処理を
K$=INKEY$
X=X-(K$="4")*(X>0)+(K$="6")*(X<39)
みたいに1行で書いたりしたな。久しぶりに書いてみたから上のは
合ってるかどうか知らないけど。

390:デフォルトの名無しさん
04/08/03 23:55
ただ単にあいまい性をなくして厳密にするためのものでしょ。
コンピュータではなく人間にとって分かりやすくするためのもの。
バグを出しにくくするためというのも含んでる。

391:デフォルトの名無しさん
04/08/04 00:21
>>385
多分>>384は設定の意味を勘違いしてるだけと思われ。
プロジェクトの設定は、ソースに明示してないときのデフォルトを設定するもので、
ソースに自動出力させるものではない。

392:384
04/08/04 01:26
>>385>>391
ありがとうございます
VB6やOfficeのVBAのように行頭に追加されるものだと思ってました<m(__)m>

393:デフォルトの名無しさん
04/08/04 16:25
>>389
>ステータスバーのところに「バックグラウンド処理が終わりました」
>みたいなのを吹き出しで表示したいので、

バルーンチップって使ったことがないから、今ヘルプとか
見たけど良くわからん。
ぼくなら、メッセージを表示して [OK] ボタンを押すか
時間がくると自分で .Close するフォームを作っちゃうけど、
そう言うのじゃだめかな?

394:デフォルトの名無しさん
04/08/04 17:47
>>389
バルーンのようなフォームを作ってみましたが、
コードはともかくデザインもあるし、どうやって渡せばいいものか。

395:デフォルトの名無しさん
04/08/04 18:26
VB.NET2003 + ADO.NETで初歩的質問です。

実行時のパスにおいてあるMDB(Access2000)に接続したいんですけど
ウィザード系使うと接続文字列が固定になっちゃいますよね

サーバーで動いてるような大きなDBならまだいいけど
環境変わったりDBのパスが変わるような、要は接続先を実行時に決定するような仕組みをつくるには
もうクラスの宣言から全てコードで記述するしかないっつーか、それが基本なんでしょうか?
DB関係のGUIは一切放棄でつか?

ADOに比べてものすごい多くのコード書かなきゃいけないんですけど・・・
めんどくさい・・・

なんかよい省力化方法ってありますか?

396:デフォルトの名無しさん
04/08/04 20:48
>>395
接続文字列だけ書き換えればいいじゃん


397:395
04/08/04 21:04
>>396
Connectionオブジェクト以下につながる下層オブジェクト(AdaptorとかDatasetとかDatagridとか)は
フォームの初期化イベント内で”つながり”が設定されているらしく
LoadイベントでConnectionの接続文字列を書き換えると、その後エラーで止まってしまいます。
うまいことやる方法はあるんでしょうか・・・
”つながり”の初期化(Refresh?)の仕方とかあったら教えて下さいませm(_ _)m

398:デフォルトの名無しさん
04/08/04 21:16
それって「フォーム デザイナで生成されたコード」を書き換えにいってないか?


399:395
04/08/04 21:58
いやいやいやw
さすがにそこまでおまぬけさんじゃないです('A`)

フォームのLoadイベントで接続文字列を書き換えた後(初期値はウィザードで作った値になっています)、
しなきゃいけない処理とか、こうすれば下層オブジェクトまでの”つながり”に反映できるってのがあればご教示下さい~

400:新人
04/08/04 22:21
あの、すみません。
現在社会人一年目のペーペーで、研修を終えてOJTに入ったばかりです。
環境はVB.net + Javascriptというものらしいです。(まだよくわかってません)

そこで与えられた作業なのですが、現在、
ボタンを押すとテーブルに一行を追加する、という処理で詰まっています。

<script type="text/javascript">
<!--
function add_row() {
table = document.getElementById('tab1');
new_row = table.insertRow(table.rows.length);
new_row.insertCell(0).appendChild(document.createTextNode(''));
new_row.insertCell(1).appendChild(document.createTextNode('b'));
new_row.insertCell(2).appendChild(document.createTextNode('c'));
new_row.insertCell(3).appendChild(document.createTextNode('d'));
new_row.insertCell(4).appendChild(document.createTextNode('e'));
new_row.insertCell(5).appendChild(document.createTextNode('f'));
new_row.insertCell(6).appendChild(document.createTextNode('g'));
}
// -->
</script>

という感じで書いて、行を追加するのですが、
createTextNode('')
のままでは、ただ文字列を表示するだけなんです。
これをテキストボックスにするやり方が、もうずっと考えているんですけど、
どうしても分かりません。
周りに聞ける人間が全然いなくて、メソッドの使い方もまだ全然です。
どうか、どなたか救っていただけませんでしょうか?

401:デフォルトの名無しさん
04/08/04 22:28
>>399
その後のエラーとやらの内容をちゃんと書け。
でも簡単にやる場合は普通はダイナミックプロパティを使うと思うが。

402:デフォルトの名無しさん
04/08/05 03:51
学校でVB6.0を使っているのですが
課題を家でやるためにspoke premiumを買っても問題ないでしょうか?

403:デフォルトの名無しさん
04/08/05 08:52
>>402
だめ
VB6スレにいけ

404:デフォルトの名無しさん
04/08/05 10:11
>>400
周りに聞けるものがいない会社ってどんな会社だよw

405:395
04/08/05 10:45
解決しました・・・・orz
りっぱなおまぬけさんですた・・・・orz

というか、Loadイベントで接続文字列書き換えるだけで下層も勝手に追随してくれるんですねー
リフレッシュも何もいらないとは、便利というかブラックボックスというか・・・

結局昨日はなんでエラーになったかというと
ソースと同じパスにmdb置いてたせいだったんでした orz
VB.NETはexeがソース直下のbinフォルダにできるんでした・・・
VB6に慣れすぎてます(涙
お答えくださった方、ごめんなさいでした

>>401
ダイナミックプロパティは”実行時のパス”を設定できないのでこの場合使えませんでした。
でもoracleとかの固定DBには有効な手段ですね!サンクスです。

406:デフォルトの名無しさん
04/08/05 14:06
WebBrowserで新しいウィンドウを開かせても親ウィンドウを
閉じたら子ウィンドウも閉じてしまう現象を解決する方法は?
6.0なら何も指定しなくてもいけたんだが…。

With New Form1
.WebBrowser1.RegisterAsBrowser = True
e.ppDisp = .WebBrowser1.Application
.Visible = True
End With

407:デフォルトの名無しさん
04/08/05 14:45
DataGridで特定の列だけセルにフォーカスを受けないようにする方法はないでしょうか?
Tabキーを押していくとその列だけとばされるようなイメージで。



408:デフォルトの名無しさん
04/08/05 18:14
今、VB.net 2002を使用していますが
2003にアップするとどのような魅力がありますか?

どうせアップするならVIsual Studio.net 2003 Professionalの
ステップアップグレード買おうかと迷っとります。

けど2005もベータ版が発表されましたしもう少し様子見た方が良いですかね?


409:デフォルトの名無しさん
04/08/05 22:52
Visual Studio .NET theSpoke Premium Version 2003
って、ラーニングエディションみたいなもんですか?

410:409
04/08/05 22:55
すいません、スレ違いでした
逝ってきます・・・

411:デフォルトの名無しさん
04/08/06 07:02
>>407
Private Sub DataGrid1_CurrentCellChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGrid1.CurrentCellChanged
    ~
End Sub
で該当の列だったら
DataGrid1.CurrentCell = New DataGridCell(RowNumber, 次のColumnNumber)

412:407
04/08/06 08:59
>>411
早速教えていただきありがとうございます。
これ最後の列だったりするときは勝手に次の行に行きますかね?
ってとりあえず試してみます。
助かりました。

413:407
04/08/06 09:53
うまく行きそうです。

質問続きで申し訳ないのですがDataGridを継承させてコントロール(myDataGrid)を作っているのですが
myDataGrid.TableStyle.Addメソッドが呼ばれたことをmyDataGrid側で知る方法はないでしょうか?

414:デフォルトの名無しさん
04/08/06 14:28
数字を漢字にしてくれる関数はなんでしょうか?

Ary(1)="一"
Ary(2)="二"
Ary(3)="三"
のように自作で数字漢字変換するしかないのでしょうか


415:デフォルトの名無しさん
04/08/06 14:37
>>414
そんな関数がライブラリで用意されてると期待すること自体が不思議。

416:デフォルトの名無しさん
04/08/06 15:17
>>414

ChangeNumericToJapaneseNumericChar()

417:デフォルトの名無しさん
04/08/06 15:34
>>414
漢字コードは順番に並んでるんだから、変換テーブルは必要ないと思うけど。

418:414
04/08/06 15:47
みなさま了解です。

419:デフォルトの名無しさん
04/08/06 16:28
VB6で「アイコンなし、×ボタンだけなんだけどサイズ変更可能なダイアログ」
というのを実現するのに、BorderStyle=固定ダイアログ、Icon=なしにして、Form_Loadで
SetWindowLong WS_THICKFRAME して実現してますた。
これをVB.NETでもやりたいんですが、APIなしでできますか?それとも同じ方法が
ベストですか?
あとついでに、フォームの右下にサイズ変更ツマミ(斜線をドラッグできるやつ)って
任意に出せないですか?


420:デフォルトの名無しさん
04/08/06 21:06
>>419
書いてあること、フォームのプロパティウィンドウでいろいろ試すだけで
一分で全部できた。

正直、こういう人ってどういう根性してるのかねえ?不思議。
精神分析の対象だわホント。

421:デフォルトの名無しさん
04/08/06 21:20
>>420 うぜぇよ。消えな。

422:デフォルトの名無しさん
04/08/06 22:28
漢字を数字か。昔仕事でそんなコードを書いたな。
百五と百十五と百二十五とか腹立つんだよねぇ

423:デフォルトの名無しさん
04/08/06 23:48
>422
一、十、百、千、一万とかも嫌だね。

424:デフォルトの名無しさん
04/08/07 00:10
客が壱、弐、参も使いたいとかローマ数字Ⅰ、Ⅱ、Ⅲとかも使いたいとか言ってきたら大変だな

425:e
04/08/07 01:06
ADO.NETでデザイナを使わないで、プログラミングする方法の解説とか
ごぞんじないでしょうか。

webで検索してみても、こういう結構基本的なもので終わってるのが
多いもんで。。。
URLリンク(www.atmarkit.co.jp)


426:デフォルトの名無しさん
04/08/07 01:08
白黒2色のマスク画像みたいなやつの黒の部分から
Regionオブジェクトを作る方法ってないでしょうか?

427:DARK
04/08/07 01:32
NoCD化パッチ作りたいのですが…教えて下さいm(_ _)m


428:デフォルトの名無しさん
04/08/07 02:03
>>425
黄色いADO.NETの本とかは?
でかくて高いヤツ
まぁあれも基本しか書いてないけど


429:デフォルトの名無しさん
04/08/07 07:25
やっぱ標準モジュールがあると便利だね。
C#が嫌になってきた。

430:デフォルトの名無しさん
04/08/07 13:14
c#が嫌なのは同意するが(VBに比べると、可読性が悪くてイライラしてくる)
標準モジュールなんてイラネ。

読みにくいキャメル形式の命名法もイラネ。

431:ぷぷぷっ
04/08/07 17:11
.NET(2002 or 2003)で作成したアプリを動かしたときに、
そのアプリはどの.NET Frameworkのバージョン(1.0 or 1.1)で動いているか
把握することはできないんかいのぉ。。。
そのアプリのフッター部分に表示とかしたいのじゃが。

432:デフォルトの名無しさん
04/08/07 19:20
ちょっと違うが、VB.NETで作ったプログラムで、フォームに
そのプログラムをコンパイルした日時を埋め込みたいのですが
なんか方法ありますか?


433:デフォルトの名無しさん
04/08/07 22:58
標準モジュール…ってあんたw

434:419
04/08/08 02:31
>>420
出来なかったんですが、やり方教えてもらえませんか?


435:419
04/08/08 03:06
>>434
当たり前なので書き忘れましたが、SizableToolWindowはなしでお願いします。
あれはダイアログボックスではなくプロパティインスペクタを作るための
もので、タイトルバーの高さが異なるものなので。

436:419
04/08/08 03:12
>>435
あ、でもSizableToolWindowでプロパティをいじるだけでタイトルバーの
高さを通常のウィンドウと揃える方法があればそれでオーケーです。
連続カキコですみません。

437:デフォルトの名無しさん
04/08/08 14:16
自分でコントロール作った方が早くない?

438:デフォルトの名無しさん
04/08/08 21:52
>>435
重症だわこの人。。「当たり前なので書き忘れましたが、」だと。
なんで最近こういう「自分以外はみんなエスパー」と思ってるとしか思えない
病的な奴が多いんだろう。

420 :デフォルトの名無しさん :04/08/06 21:06
>>419
書いてあること、フォームのプロパティウィンドウでいろいろ試すだけで
一分で全部できた。

書いてあること、

書いてあること、

書いてあること、


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