下記のプログラムが、動作するところまでは修正したのですが
oWSheet.Cells[1, 1].Valueのところがセルの値を読み込んでいると
思いますが、このデータを変数にセットしたいと考えております
(バイナリデータでセットできればと思ってます。)
Excel._Worksheet oWSheet = (Excel._Worksheet)oExcelWBook.ActiveSheet; // セルA1の値を取得 MessageBox.Show("セルA1の値:" + oWSheet.Cells[1, 1].Value); // セルA2に更新時刻を書き込み oWSheet.Cells[2, 1] = DateTime.Now.ToString("HH時mm分ss秒"); Excel.Range oRange = oWSheet.Cells[2, 1]; // セル選択 oRange.Font.Size = 8; oRange.Font.Name = "MS 明朝"; oRange.Font.Color = 0xFF0000; oRange.Interior.Color = 0x44FFFF; // [Microsoft Excel - 互換性チェック]ダイアログの表示有無 oExcelWBook.CheckCompatibility = false; oExcelWBook.SaveAs(fileName); // Excel保存 MessageBox.Show( 下記のプログラムでbufが未使用でしたのでコンパイラが勝手に削除されているのかと思いまして下記のbufをシリアル出力するようにしました。 byte[] buf = System.Text.Encoding.GetEncoding("shift-jis").GetBytes(oWSheet.Cells[1, 1].Value as string); serialPort1.Write(buf, 0, 8); 実行してみますと byte[] buf =・・・・のところに 「型 'System.ArgumentNullException' のハンドルされていない例外が mscorlib.dll で発生しました」 というエラーが発生していました
そのセルのExcel上での型は何でしょう?文字列ですか?文字列をバイナリーデータとして変数へセットするという意味が曖昧です。バイナリーデータはどういう意味で使っていますか?バイナリーデータで変数にセットできたら何ができると期待しているか等々を追記したほうがよいと思います。
ご指摘のとおりでした。データの形、変換についてが曖昧でした。(昨日帰り気が付きました)Excel上のデータの形は、文字列で、そのデータのアスキーコードにしてシリアルでバイナリ送信しようとしております。excel上の文字列は8文字です
ご指摘のとおりでした。データの形、変換についてが曖昧でした。(昨日帰り気が付きました)Excel上のデータの形は、文字列で、そのデータのアスキーコードにしてシリアルでバイナリ送信しようとしております。excel上の文字列は8文字です
結局何を回答すればよいか謎なんですが、質問の「エクセルのセルの値を変数に代入する方法を教えて」ってことを知りたいんでしょうか?データを送信したいんでしょうか?で、サンプルコードで現状で何が問題です?「下記のプログラムが、動作するところまでは修正した」ということですが、「MessageBox.Show("セルA1の値:" + oWSheet.Cells[1, 1].Value); 」で値って取れてるんでしょうか?追記か質問の内容自体更新していただけると回答しやすいかと思います。
申し訳けありません。質問が曖昧でした。エクセルのセルの値を変数に代入する方法を教えて頂きたいです。下記のプログラムで、bufferの値をウオッチしました。
oWSheet.Cells[1, 1].Valueで値取れてます?取れてないなら、Excelのシートの指定とかインスタンスの取得とか問題っぽいので「oWSheet」で取得したいエクセルシートが取得できているか気になります。(その)部分のコードだったりExcelの状況がわからないのでとりあえずここで書いてます~♪
ご指導を賜り、誠にありがとうございます。まだ、teratallの使い方さえわかってなく、申し訳けありません
MessageBox.Show("セルA1の値:" + oWSheet.Cells[1, 1].Value)の処理の部分は正常に動作しており、セルの値が表示されておりました。
回答3件
あなたの回答
tips
プレビュー