-
Excelシートに文字として数字や日付を書き込む方法2007.07.26 Thursday
-
VB.NETでExcelシートのセルに値をセットする場合、以下のように書きます。
(定義ややり方はあくまで一例です)
Dim xlsApp As New Excel.Application
Dim xlsBooks As Excel.WorkBooks = xlsApp.WorkBooks
Dim xlsBook As Excel.WorkBook = Nothing
Dim xlsSheet As Excel.WorkSheet = Nothing
xlsBook = xlsBooks.Add() 'ブックの追加
xlsSheet = xlsBook.WorkSheets.Add() 'シートの追加
'セット方法その1
xlsSheet.Cells(2,2).Value = "0123"
'セット方法その2
xlsSheet.Cells(2,3).NumberFormatLocal = "@"
xlsSheet.Cells(2,3).Value = "0123"
セット方法その1では123と表示され、セット方法その2では0123と表示されます。
(2行2列目は123、3列目は0123と表示される)
セット方法その2はセルの表示形式NumberFormatLocalに@(文字列)を指定して書き込んでいます。数字や日付を文字として設定したい場合はこの方法を使います。
-
VB.NETでのテキストファイルの出力2007.07.24 Tuesday
-
VB.NETでプログラムのログファイルを出力する等、テキストファイルを出力することは良くあることです。以下はそのサンプルです。
(基本的にはC#.NETも同じ)
Dim textFile As System.IO.StreamWriter
textFile = New System.IO.StreamWriter("c:¥temp¥log.txt", True, System.Text.Encoding.Default)
textFile.WriteLine("text1")
textFile.WriteLine("text2")
textFile.Close()
上記のサンプルは、c:¥temp¥log.txtというファイル名で、追加モードをTrueにし(ファイルが存在していれば、そのファイルの後にテキストを追加する)、システムコード(WindowsではShift-JIS)でエンコーディングし、"text1","text2"をそれぞれ改行コードを付加して出力しています。
-
VB.NETでExcelの行削除を行い最終セルを取得するには2007.07.19 Thursday
-
今日ははまってしまいました。VB.NETでExcelシートを読み込み、ある範囲の行を削除後、最終セルを取得しようとして苦労してしまいました。
まず、VB.NETでエクセルのブックを開いてシートを選択し、5行から10行を削除します。
Dim excelApp As New Excel.Application
Dim excelWork As Excel.Workbook
excelWork = excelApp.Workbooks.Open("c:¥temp¥Book1.xls")
Dim excelSheet As Excel.Worksheet = excelWork.Sheets(1)
excelSheet.Rows("5:10").Delete()
この状態で最終セルを取得すると、削除前の最終行が返ってきます。
'シートの最終セルを選択します
excelSheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Select()
削除後のシートの最終セルを取得するには、一度保存します。
excelWork.Save()
こうすると、読み直さなくても、上記の最終セルを選択するソースで削除後の最終セルが取得できます。
-
VB.NETでVBのDoEventsを実行するには2007.07.18 Wednesday
-
今日仕事でVB.NETの画面に作業の進捗状況を表示するプログラムを作成しました。
処理を行っているときに、画面のラベルに進捗状況をセットするわけですが、そのままでは、処理が優先されて画面のラベルの表示は書き換わってくれません。
VBではそのようなとき「DoEvents」と一言書けば、溜まっていた要求をVBが処理してくれて、画面のラベルの表示が書き換わります。
VB.NETも同じだろうと思って「DoEvents」と書いたのですが、その様な処理は定義されていないといってエラーとなります。そこで、ちょっと調べるのに時間がかかりましたので、同じ悩みに直面した人のために。
VB.NETでのDoEventsは
「Application.DoEvents()」
でした。
-
VB.NET,C#.NETでマイドキュメントのフォルダを取得する2007.07.17 Tuesday
-
プログラム内で、ワークファイルを作成したい場合や、ログ等一時的なファイルを作成したい場合、マイドキュメントを使用すれば、そのフォルダは絶対にありますし、説明書も書きやすいので(あくまで私の趣味)便利です。
ドットNETでマイドキュメントのフォルダを取得するには以下のクラスを使用します。
System.Environment
以下の例ではマイドキュメントのフォルダを表示しています。
MessageBox.Show(System.Environment.GetFolderPath(Environment.SpecialFolder.Personal))
このEnvironment.SpecialFolderには他にもいろいろあるので、試してみるのも面白いと思います。
-
Excelシートの入力セル最終行取得方法2007.07.12 Thursday
-
VB.NETで、Excelシートを操作するとき、そのシートの最終行を取得したい場合が多々あります。
セル値(Textプロパティの値)が空かという聞き方で調べる方法はありますが、どのセルに焦点を絞るかなど、なかなか厄介です。
以下のようにすればExcelが認識している最終行を取得することができます。
Dim excelApp As New Excel.Application
Dim excelWork As Excel.Workbook
excelWork = excelApp.Workbooks.Open("c:¥temp¥Book1.xls")
Dim excelSheet As Excel.Worksheet = excelWork.Sheets(1)
'シートの最終セルを選択します
excelSheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Select()
'最終行を表示しています
MessageBox.Show(excelApp.ActiveCell.Row)
excelWork.Close()
excelApp.Quit()
以上。
-
Excelシートのセル値の取得方法2007.07.09 Monday
-
ExcelのVBAでCELLの値を参照する場合、セルに表示されているイメージを取得するにはTextプロパティを使用します。
例)VB.NETでの使用例(Excel Libraryを参照設定しているとします)
Dim excelAppObj As New Excel.Application
Dim excelWorkBook As Excel.WorkBook
Dim excelSheet As Excel.WorkSheet
excelWorkBook = excelAppObj.WorkBooks.Open("Excelファイル名")
excelSheet = excelWorkBook.Sheets(1) '最初のシート
MessageBox.Show(excelSheet.Cells(1,1).Text) '1行1列を表示
しかし、日付で入力したセルが非表示になっている場合、Textでは期待した値は取得できません。(表示上は何も表示されない)
この場合はFormat関数でValueを使えば値を取得できます。
※日付のセルでも表示されていればTextで日付を取得できます。
例)MessageBox.Show(Format(excelSheet.Cells(1,1).Value,"yyyy/MM/dd"))
以上。
-
C#.NETでVBのLeft,Right関数等を使うクラス2007.07.08 Sunday
-
VBの文字操作関数は使うと結構便利です。C#.NETでは標準で用意されていない機能を、このVBの文字列関数を使うと簡単に実現できてしまいます。
クラスはMicrosoft.VisualBasic.Stringsクラスです。
以下は.NET2.0の場合の例です。
1.参照設定でMicrosoft.VisualBasicを追加します。
2.ネームスペースの使用宣言
using Microsoft.VisualBasic
3.使用方法
Strings.Left(対象文字列,長さ)
Strings.Right(対象文字列,長さ)
※Microsoft.VisualBasic.Stringsクラスにはその他いろいろな文字列操作関数があります。
また、VB.NETの場合は、直接Left,Right関数を書けますが、Formクラスには直接書けません(Left.Rightはプロパティで存在するため)。この場合は、Microsoft.VisualBasic.Leftというように書きます(Microsoft.VisualBasic.Strings.LeftでもOKです)。
以上
-
.NETでCSVファイルを読んでデータ取得する方法2007.07.07 Saturday
-
CSVファイルは読み込んだ後に、カンマや引用符の処理等を行って、各値を取り出すのがなかなか面倒です。.NET2.0のMicorosoft.VisualBasic.FileIOneネームスペースのTextFieldParserクラスを使うとそれが簡単になります。
以下にVB.NETでの例を記します。
Imports Microsoft.VisualBasic.FileIO
Dim csvFile As TextFieldParser
'解析するファイル名とエンコーディングコードを指定
csvFile = New TextFieldParser("CSVファイル名",
System.Text.Encoding.GetEncoding("Shift_JIS"))
'デリミタで構成されているファイルであることを指定
csvFile.TextFieldType = FieldType.Delimited
'デリミタがカンマであることを指定
csvFile.SetDelimiters(",")
'ファイルの最後まで読み込んでデータを取得する
Do Until csvFile.EndOfData
Dim row As String() = csvFile.ReadFields()
ここに処理を記述
Loop
※クロース処理等の後始末は要らないようです。
以上
-
VB.NET,C#.NETで日付、時刻を取得する2007.07.05 Thursday
-
ここでは、DateTimeクラスで、今日の日付、今の日付時刻を取得するメソッドの例を記します。
1.今日の日付を取得する
DateTime.Today.ToString("yyyymmdd");
(yyyy:年 mm:月 dd:日)
例えば今日の場合、20070705と返ってきます。
2.今の日付時刻を取得する
DateTime.Now.ToString("yyyyMMddHHmmss");
(HH:24時間制の時間 ※hhの場合は12時間制となる ss:秒)
※TodayとNowでは月を取得する文字が違う(mとM)ので注意。
以上。
< 前のページ | 全 [2] ページ中 [1] ページを表示しています。 | 次のページ > |