redfox63 の回答履歴

全3318件中61~80件表示
  • 文字化けについて

    アクセスのテーブルをTransferTextでエクスポートし、 そのソースの中身のタグをVBAで置換したいのですが Sub test1() Dim objIE As Object Dim myStr As String Dim t As String t = "Table" DoCmd.TransferText acExportHTML, , t, MyDesktop & "\" & t & ".html", True Set objIE = CreateObject("MSXML2.XMLHTTP") objIE.Open "GET", MyDesktop & "\" & t & ".html", False objIE.send myStr = objIE.responseText myStr = Replace(myStr, "<TD DIR=LTR ALIGN=RIGHT>", "<TD>") Debug.Print myStr Set objIE = Nothing End Sub これだと、日本語部分が?になってしまいます。 なので、 myStr = objIE.responseText を myStr = StrConv(objIE.responseText, 64) に変更したら、余分なスペースが入り、結局文字化けしたままです。 http://www2s.biglobe.ne.jp/iryo/vba/IE/http1.html を参考にしたのですが、日本語を含むソースの場合はどうすればいいでしょうか?

  • 文字化けについて

    アクセスのテーブルをTransferTextでエクスポートし、 そのソースの中身のタグをVBAで置換したいのですが Sub test1() Dim objIE As Object Dim myStr As String Dim t As String t = "Table" DoCmd.TransferText acExportHTML, , t, MyDesktop & "\" & t & ".html", True Set objIE = CreateObject("MSXML2.XMLHTTP") objIE.Open "GET", MyDesktop & "\" & t & ".html", False objIE.send myStr = objIE.responseText myStr = Replace(myStr, "<TD DIR=LTR ALIGN=RIGHT>", "<TD>") Debug.Print myStr Set objIE = Nothing End Sub これだと、日本語部分が?になってしまいます。 なので、 myStr = objIE.responseText を myStr = StrConv(objIE.responseText, 64) に変更したら、余分なスペースが入り、結局文字化けしたままです。 http://www2s.biglobe.ne.jp/iryo/vba/IE/http1.html を参考にしたのですが、日本語を含むソースの場合はどうすればいいでしょうか?

  • IFステートの中にWithステートメントの始まり

    IFステートの中にWithステートメントの始まりだけ入れることってできないのですか? Sub j() Dim a As String a = "aaa" If a = "aaa" Then With Sheets("作業用1") Else With Sheets("作業用2") End If End With End Sub このような事をやろうとすると、Elseの部分でコンパイルエラーになります。 別の方法として、シートオブジェクトの中に入れちゃえば入れちゃえば With の分岐をしなくていいことは分かったのですが、 このような使い方をしたいことが多々あるのですが、 VBAの文法的には、IFの中にWithの始まり(先頭)だけを入れることは不可能なのでしょうか?

  • DOS画面の表示量を拡大するには?

    DOS PROMPT画面から DUMPBIN.EXEプログラムを実行します (DUMPBIN.EXEは実行形式の情報をダンプ表示します) かなりの情報量を表示するらしく10秒近く画面スクロールが続きます スクロールが停止した時点で垂直スクロールバーを操作して、一番最初の表示情報から見ようとしても消えてしまっており最後に近い部分のみしか見ることが出来ません 多分、表示バッファのサイズが関係しているのだろうと思いますが、解決出来ません 対処法をご指導頂きたいと思います 宜しくお願い申し上げます

  • 照合に関するプログラムについて

    2つのファイルを用意して1つが以下のaaa.txtのような数値が記述されているファイルで、もう1つがbbb.txtのようなファイルでこの中の2列目には、aaa.txtに記されている数値が含まれています。 -------aaa.txt------- -------bbb.txt------- 1.4 XMS 2.5 2.5 XMS 2.7 2.7 XMS 1.1 2.1 XMS 1.0               XMS 2.1 XMS 1.4 aaa.txtとbbb.txtそれぞれのテキストないで数字のダブリはない。bbb.txtはaaa.txtの数字をすべて含む。 aaa.txtに記述されている数値を利用して、bbb.txtの2列目で同じ数値を示すものをその数値がある行ごと取り出し、行末にnameという文字を出力し、bbb.txtの数値がaaa.txtのどの数値とも異なればそのままその行を出力するようなプログラムを書きたいと考えました。そこで、下記のようなプログラムを書いて実行したところ、こちらの意図した出力(ccc.txt)が得られませんでした。なぜ、cccのような出力にならなかったのかがわからなくて非常に困っています。どなたかこのプログラムの誤り又はもっと良い書き方を教えていただけないでしょうか。回答よろしくおねがいします。 ------------ccc.txt---------------- XMS 2.5 name XMS 2.7 name XMS 1.1 XMS 1.0 XMS 2.1 name XMS 1.4 name -----プログラム-------- #include<stdio.h> #include<string.h> int main(int argc ,char *argv[]) { FILE *fp[argc],*gp; char x[30]; int linemax,ret; double distance; int i=0; char command[30] = "wc "; char *re="> Nline.txt"; char file1[25],file2[25],file3[25],*ends;  strcat(command,argv[2]);  strcat(command,re);   system(command);  gp=fopen("Nline.txt","r"); fscanf(gp,"%d%s%s%s",&linemax,file1,file2,file3);   system("rm Nline.txt");  fp[0]=fopen(argv[1],"r");  linemax=linemax-1; while(fscanf (fp[0],"%s %lf",x,&distance==9){ while(fscanf(gp,"%lf",&dis)==1){  if(dis==distance){   printf("%s %lf name \n",x,distance);   i=0;   }else if(dis!=distance && i==linemax){    printf("%s %lf \n",x,distance);   i=0;   }   i++; }rewind(gp); } fclose(gp); fclose(fp[0]); return 0; }

  • 動的に追加したポップアップメニューのオーナードロー

    WindowsXp/BCC5.5の環境でアプリ作りを勉強しています。 「mi.fType = MFT_STRING」として、あらかじめ用意したポップアップメニューに動的にメニューを追加できるのですが、その追加したメニューにビットマップを付加するために、「mi.fType = MFT_OWNERDRAW」で追加したいのです。 しかし、これがうまくいきません。 追加じたいは出来るのですが、メニューIDがWM_MEASUREITEMのところに届いていないみたいで そのため、オーナードローできずにいます。 つまり、「WM_MEASUREITEM」は飛んできますが、メニューID((UINT) wp)はゼロのままです。 本当は「mi.wID = 1200」を取得したいんです。 そのため、ウインドウメッセージ、WM_MEASUREITEM、WM_DRAWITEMは 飛んできますが、オーナードローができず、困っております。 ポップアップメニュー追加のためのコード(以下抜粋)を記載しています。 どなたか、ご教授できないでしょうか。 宜しくお願いします。 <メニュー追加のためのコード> memset(&mi, 0, sizeof(MENUITEMINFO)); mi.cbSize=sizeof(MENUITEMINFO); mi.fMask = MIIM_TYPE | MIIM_ID | MIIM_STATE; mi.fType = MFT_OWNERDRAW; mi.wID = 1200; InsertMenuItem(hSubMenu,0,TRUE,&mi ); 以上

  • (VC++2010)画像をドラッグしたいのですが

    VC++初心者です。 学校の課題で、 Buttonを押して、画像ファイルを読み込みpictureBox1に表示 ↓ pictureBox1上でマウスドラッグをして、ドラッグで選択された長方形の部分の画像をコピーし、pictureBox2に表示 というプログラミングを書きたいのですが、ドラッグのところで詰まってしまっています。 ドラッグを開始した座標などをどう上手く使って行けばいいのかがわかりません… 初心者すぎて質問の仕方もイマイチわからないのですがどなたか教えて頂けると幸いです。

  • VC++2010のエディットボックスの出力について

    VC++2010のエディットボックスの出力について質問させていただきました。 シリアル通信でデータを毎秒受信するプログラムを作成しており、 9_27_23.4_33.00 というデータを受信して エディットボックスに表示しているんですが 9_27_23.4_33.00 9_27_23.4_33.00 9_27_23.4_33.00 ・ ・ ・ という表示を期待しているんですが 改行されず上書きされてしまいます CString szRecvの中に受信データが格納されており szRecv = szRecv +"\r\n"を記述しても 改行されませんでした。 どのようにしたら うまく 改行されて表示されるのか よろしくお願いします

  • VBScript文字列をSJISからUTF8へ関数

    VBScriptでSJISの文字列を、UTF8に変換し、 UTF8で設定されたMySQLへ保存したい。 SJISをUTF8に変換する関数をご教授いただきたいです。 以下をまるまるコピーさせていただき試してみたのですが、 文字化けしたメッセージが返されます。 Function TextToBin(TextData, CharSet) Const adTypeBinary = 1 Const adTypeText = 2 Dim objStream Set objStream = CreateObject("ADODB.Stream") objStream.Type = adTypeText objStream.Charset = CharSet objStream.Open objStream.WriteText TextData objStream.Position = 0 objStream.Type = adTypeBinary Select Case UCase(CharSet) Case "UNICODE","UTF-16" objStream.Position = 2 Case "UTF-8" objStream.Position = 3 End Select TextToBin = objStream.Read objStream.Close Set objStream = Nothing End Function msgbox TextToBin("テスト","UTF-8") ←文字化ける msgbox TextToBin("テスト","UTF-16") ←文字化けない

  • 図形のクリアで実行時の1004エラーになる

     指定範囲(I9:CW40)から図形(円・四角形)のクリアをするとエラーになってしまいます。終了をすればクリアはできるのですが。御教授願えませんでしようか?(尚四角形はセルの枠線上に貼り付けるようにしてあります。) Sub 図形のクリア() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Dim myRng As Range Dim sp As Variant Set myRng = Range("I9:CW40") For Each sp In ActiveSheet.Shapes If Not Intersect(Range(sp.TopLeftCell, sp.BottomRightCell), myRng) Is Nothing Then sp.Delete (ここで実行時1004のエラーになる。) End If Next Set myRng = Nothing Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End Sub

  • コマンドボタン選択でリストボックス内容変更

    ユーザーフォーム内のあ~たコマンドボタンをクリックするたびにリストボックス内のリスト内容が変更する。 "あ"のコマンドボタンをクリックしたらsheetの氏名頭文字あ列の氏名がリストボックスに反映するようなコードがわかりません。どなたかご教授のほどよろしくお願いします。

  • フォント指定の受渡し法?

    私が作成中の .NET C++プログラムはフォント指定を他のC#アプリから受取っており、そのフォント指定に基づいて文字を表示することになっております 受け取るフォント情報はC#のフォントダイアログにより選択されたものです 具体的には (1) M S 明朝, 9.75pt, style=Italic (2) HGPゴシックM, 20.25pt, style=Bold などといった文字列です 私が作成するC++ではこれらの指定に基づいてCreateFontするのでしょうが、上記のC#フォント指定と下記のC++ CreateFontパラメータでは差があり過ぎて、どのようにしたら良いのか分かりません font.CreateFont( 20.25, // フォントの高さ(大きさ)。 0, // フォントの幅。 0, // 0でOK。 0, // 同じく角度 FW_DONTCARE, // 文字の太さ FALSE, // イタリックならTRUEを指定 FALSE, // 下線ならTRUE FALSE, // 取り消し線ならTRUE SHIFTJIS_CHARSET, // フォントの文字セット OUT_DEFAULT_PRECIS, // 出力精度の設定 CLIP_DEFAULT_PRECIS, // クリッピング精度 DRAFT_QUALITY, // フォントの出力品質 DEFAULT_PITCH, // フォントのピッチとファミリを指定 L("HGPゴシックM") // フォントのタイプフェイス名の指定 ); C#のフォントダイアログからの情報を簡単にC++のCreateFontのパラメータを作り出す方法はありますか? またC#から受け取る情報が基本的に間違っており、別の情報があるのではないかと心配です 宜しくご指導願います

  • フォームを画面のど真ん中に表示させたいのですが

    フォームを画面のど真ん中に表示させたいのですが、 http://dobon.net/vb/dotnet/form/startposition.html を見たのですがコードの書き方がよくわかりません。 Public Class Form1 Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Dim f As New Form1() 'フォームを画面の真ん中に表示する f.StartPosition = FormStartPosition.CenterScreenf.Show() End Sub End Class こうすると、「FormStartPosition.CenterScreenf」の部分に波線がひかれます。 Public Class Form1 Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Me.StartPosition = FormStartPosition.Manual Me.Location = New Point(0, 0) End Sub End Class これで左は時に表示する事は出来るのですが、真ん中に表示させるにはどうすればいいでしょうか?

  • gridviewでの高さの取得方法

    gridviewの各行の高さを取得する方法を教えていただけないでしょうか? gridview.Rows(0).Height.ToStringを行っても、空白になってしまいます。 gridview.Rows(0).Cells(0).Height.ToStringでも同じ結果でした。 申し訳ございませんが、よろしくお願いします。

  • SQL Server2012 とC#

    DataGridViewで選択した行を他の処理に渡したくて、Netで調べて、次のようにしてみました。 DataSet ds = new DataSet(); SqlDataAdapter adpt = new SqlDataAdapter(); DataTable tbl = new DataTable("Movies"); ds.Tables.Add(tbl); for(int i=0; i<DataGrifView1.ColumnCount; i++){ tbl.Columns.Add(DataGridVew1.Columns[i].Name,DataGridView1.Columns[i].ValueType); } foreach(DataGridViewRow dr in DataGridView1.SelectedRows){ DataRowView rv= (DataRowView)dr.DataBoundItem; tbl.ImportRow(rv.Row); } ここで、出来たDataSet dsを、他のフォームに渡しました。そのフォームにはDataBindingNavigator1と、内容を表示するためのテキストボックスがあります。フォームLoadで次のように ナビゲータと各テキストに設定しました。 BindingSource1.DataSource = ds; BindingSource1.DataMember = "Movies"; DataBindingNavigator1.BindingSource = BindingSource1; textBox1.DataBindings.Add(new Binding("Text", ds, "Movies.邦題")); textBox2.DataBindings.Add(new Binding("Text", ds, "Movies.原題")); textBox3.DataBindings.Add(new Binding("Text", ds, "Movies.読み")); textBox4.DataBindings.Add(new Binding("Text", ds, "Movies.制作国")); textBox5.DataBindings.Add(new Binding("Text", ds, "Movies.制作年")); textBox6.DataBindings.Add(new Binding("Text", ds, "Movies.上映時間")); DataGridViewの複数の行を選択して、この処理を行うと、ナビゲータには、Rowの行数分だけのレコード数の分母が表示され、各テキストにはそれぞれのレコードの内容の内の一件分が表示されています。 Q1:  ここで、ナビゲータの進むボタンを押してみると、レコード位置を示す数(分子の方)が進むのに、テキストの内容が変化しません。何か、やり足りないのでしょうか? Q2:  DataGridViewの左上の行ヘッダと列ヘッダの交わる部分をクリックして、全選択(のつもりで)この処理を呼ぶと、SelectedRowの内容が読めないようで、NullReferenceExceptionのハンドルされていない例外が発生して、「オブジェクト参照がオブジェクトインスタンスに設定されていません」と言われます。デバッガでSelectedRowを追っても、行数はあるものの内容がありません。全選択は使用方法が違うのでしょうか?

  • C# chart controlの透過について

    グラフの透過についての質問です。 visual studio2010 C# .Net Framework3.5 添付画像の様にグラフの外側の透過は出来たのですが、 グラフ上の白い部分も透過することは可能なのでしょうか? 可能な場合、どのような手段で出来るのかも教えていただけると幸いです。 よろしくお願いいたします。

  • SelectedIndexChanged

    SelectedIndexChangedイベント後、コンボボックスを空白にしたいのですが、 Private Sub cmb_コンボボックス_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles cmb_コンボボックス.SelectedIndexChanged Me.cmb_コンボボックス.Text = "" End Sub をしても何も起りません。空白にもならないしエラーにもなりません。 Me.cmb_コンボボックス.Text = Null は出来ないようです。 イベント後、自身のコントロールを空白にするコードを教えてください。ご教授よろしくお願いします。

  • SelectedIndexChanged

    SelectedIndexChangedイベント後、コンボボックスを空白にしたいのですが、 Private Sub cmb_コンボボックス_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles cmb_コンボボックス.SelectedIndexChanged Me.cmb_コンボボックス.Text = "" End Sub をしても何も起りません。空白にもならないしエラーにもなりません。 Me.cmb_コンボボックス.Text = Null は出来ないようです。 イベント後、自身のコントロールを空白にするコードを教えてください。ご教授よろしくお願いします。

  • 構造体配列の特定のメンバーをFor~Eachで

    みなさんこんにちは。昔Vb6を少々やっていましたが ここ数年遠のいていました。 必要に迫られ最近Vb2010を勉強しはじめた50歳です。 サンプルの通り3つのメンバーを持つ構造体配列があり、 メンバーData3の合計を得るのに、ループで回して 計算してましたが、これを For~Next ではなくFor~Each で やれないかと考えておりました。配列の要素の個数が不定 な場合に便利だと思ったからです。 サンプルの ???_1が「型」で ???_2が「コレクション」と なるように記述するのだということまではわかりますが、 具体的な記述がわかりません。For~NetでもDo~Loopでも 他にも方法があるのは知っています。勉強の為に、For~Eachでの やりかたを知りたいのです。また、構造体配列ではなく、多次元配列での 特定の次元要素を同様に処理する方法も知りたいです。 どなたかご教授お願いできれば幸いです。 ネット上でそれなりに調べましたが、目的に沿う情報は みつけることができません。 Public Class Form1 Structure STR Dim Data1 As Double Dim Data2 As Double Dim Data3 As Double End Structure Private Sub Button1_Click(sender As System.Object, _ e As System.EventArgs) Handles Button1.Click Dim Str_1(10000) As StR Dim Rn As New System.Random() For i = 0 To 9999 Str_1(i).Data3 = Rn.Next(100) Next '以降いろんな処理をやる ' ' 'このあと For~Nex ではなくFor Each をつかってメンバーDat3の合計を得るには? Dim sum As Double For Each X As ???_1 in ???_2 '???_1 と ???_2 の記述がわからない sum += X Next Label1.Text = sum.ToString End Sub End Class

  • VB2010において同様のイベントを設定する。

    現在、VisualBasic2010を用いてPanel1~Panel4をPanel5へ移動させて図形を作成させるコードを書いております。 今後Panel1~Panel4をPanel5だけでなく、Panel6,Panel7にも同様に移動させたいと考えておりますが、やりかたがわかりません。 画像はPanel5へ移動させたものです。同様に下に配置したPanel6へも移動させたいです。 わかる方がおられましたら、お力添えいただけると助かります。 Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Panel5.AllowDrop = True End Sub Private Sub Panel1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseDown, Panel2.MouseDown, Panel3.MouseDown, Panel4.MouseDown sender.DoDragDrop(sender, DragDropEffects.Move) End Sub Private Sub Panel5_DragDrop(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Panel5.DragDrop Dim srsPnl As Panel = e.Data.GetData(GetType(Panel)) Dim dstPnl As New Panel dstPnl.Size = srsPnl.Size dstPnl.Location = Panel5.PointToClient(CursorPosition) 'New Point(e.X, e.Y) dstPnl.BackColor = srsPnl.BackColor AddHandler dstPnl.MouseDown, AddressOf dstPnl_MouseDown AddHandler dstPnl.MouseMove, AddressOf dstPnl_MouseMove Panel5.Controls.Add(dstPnl) End Sub Private Sub Panel5_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Panel5.DragEnter If e.Data.GetDataPresent(GetType(Panel)) Then e.Effect = DragDropEffects.Move End If End Sub Private previousPos As Point Private Sub dstPnl_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseDown previousPos = CursorPosition() End Sub Private Sub dstPnl_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) If e.Button = Windows.Forms.MouseButtons.Left Then Dim nowPos As Point = CursorPosition() DirectCast(sender, Panel).Left += nowPos.X - previousPos.X DirectCast(sender, Panel).Top += nowPos.Y - previousPos.Y Console.WriteLine(nowPos.X & "-" & previousPos.X) previousPos = nowPos End If End Sub Function CursorPosition() As Point Return New Point(CInt(Cursor.Position.X / 10) * 10, CInt(Cursor.Position.Y / 10) * 10) End Function End Class これが現在書いているコードです。