最近のトラックバック

  • event (夢茶爺&苦茶爺のPC奮戦備忘録)

カウンタ

おすすめ本

AccRanking

カテゴリ「Spread」の20件の記事 Feed

2016年11月24日 (木)

Windows10(x64)に「VisualBasic6.0」をインストール

最近、VisualBasic6.0(VB6.0)で動作しているシステムをWindows10に載せる物件が発生しました。 VB6.0といえば、15年ぐらい前からの古い開発環境です。
昔はVB6で結構システムを作成したものですが、大部分は「.NET」への移行が終わっています。

ただし、VB6で作られていてもシステムのプログラム本数が多い場合には「.NET」への移行には 大変な費用が掛かってしまいます。

そのため、客先ではそのままのソースでWindows10に載せ替えができないかということになります。 お客にしてみれば、以前と同じ動作をさせたい場合には「.NET」への移行は必要ないことになります。 VB6で作成したEXEがそのままWindows10で動作すれば何も問題無いことになります。

そこでWindows10へのVB6のインストールを行い、使用しているコントロールの検証を行うことになりました。 先ずはVB6のインストールなのですが、以下の様に少し引っ掛かった部分がありましたので、注意が必要です。

  • VB6の「SETUP.EXE」を「管理者として実行」で起動します。
  • インストールの手順に従って進めていきます。
  • しかし、最後のところで「システム設定を更新しています」で止まってしまいました。

 (いくら待ってもインストールは終了しません)

  • インストールを強制終了し、再度インストール開始します。
  • 再度のインストールでも最後の「システム設定を更新しています」で時間が掛かっている模様でした。
  • 仕方なく再度のインストールで、カスタム設定のところの「データアクセス」をOFF設定でインストールがOKになりました。
  • 更に「VB6.0 Service Pack 6」をインストールします。


(今回のシステムのデータベースはOracleなので、アクセス用には「oo4o」を使うので、 VBの「データアクセス」は特に必要ありませんでした)


さらに使用している市販のコントロール類の検証です。 GrapeCityによれば SPREAD7.0J  ActiveReport2.0 はWindows10での動作は補償対象外ですが 動作させてみると特に問題無く動く様です。

あと、 ActiveComm 1.0 の検証も行いましたが、特に問題無く動作する様です。 RS232Cポートを持っているWindows10のPCと、WindowsXPのPCとをクロスケーブルで接続し、 データの送受信が行えることを確認しました。

これらのコントロールは、GrapeCityでは動作を保証していないので、 自己責任 となりますが。



次のシステム改変時期には、VB6から「.NET」への移行が必要になるかと思います。
その時には、「.NET」から別の物になっていたりして…

中古パソコン 【Windows7】 [T14B] 東芝 dynabook R731/B Core i5 2520M 2.5GHz 2GB 250GB 13.3ワイド DVD Multi Win7 Pro 【中古ノートパソコン】【ノートパソコン】【PC】【アウトレット】【中古】【1ヶ月保証】【RCP】【おすすめ】

価格: 20,800円
(2016/11/24 11:57時点 )

感想:1件


楽天市場

2016年3月23日 (水)

VB.NET:Spreadのチェックボックス型セルにはCheckChangedイベントを、ボタン型セルにはClickイベントの発生方法

以前のSPREADの以下の記事では、ボタンクリックのイベントとして FpSpread1.ButtonClicked で処理していたため、 ボタンもチェックボックスもボタンイベントとして処理されてしまいました。

■VB.NET:Spreadのセルのボタンクリック時のイベント処理

それで、ボタンはクリックイベントで処理をし、チェックボックスは値が変化したイベントで処理する様にします。
チェックボックス型セルでは編集中のエディタとして FpCheckBox クラスが、 ボタン型セルでは編集中のエディタとして FpButton クラスが使用されます。 それで、それぞれのセルタイプのセルが編集モードに入った時点で、  FpCheckBox  CheckChanged イベントにハンドラを設定し、 さらに FpButton  Click イベントにハンドラを設定します。


下図は、最初、フォームが表示され[Button1]をクリックした時の様子です。

Edit1


その後、Spread上のボタンをクリックした結果が以下の図です。

Edit2


チェックボックスをクリックした結果が以下の図です。

Edit3

■関連記事
VB.NET:SpreadでのEnter時にセルを右移動させる方法
VB.NET:Spreadでフォーカスを持っていない時にセル枠を表示しない設定
VB.NET:Spreadのヘッダカラム及び、通常のカラムの連結
VB.NET:Spreadのシートへの簡単な一覧データの設定について
VB.NET:Spreadのシートのセルにボタン、テキスト、チェックボックスのセルタイプの設定
VB.NET:Spreadのセルのボタンクリック時のイベント処理
VB.NET:Spreadのセルへのデータ設定の描画速度アップ
VB.NET:Spreadのセルのチップウインドウで別に設定された文字列を表示する
VB.NET:Spreadでデータ一覧表示を簡単に行う方法について
VB.NET:Spreadデータ一覧表示での行選択処理(CellDoubleClickイベント , KeyDownイベント)
VB.NET:Spreadデータ一覧表示での行選択処理(CellDoubleClickイベント , KeyDownイベント)その2
VB.NET:Spreadデータ一覧表示での自動ソート実行時に複数のソート条件を指定する方法について
VB.NET:Spreadで異なるSPREADコントロール間でシートデータのコピーを行う方法
VB.NET:SpreadでのCSV出力とCSV入力を使って、異なるSPREADコントロール間でシートデータのコピーを行う方法
VB.NET:SpreadシートのPDF出力と表示を行う方法
VB.NET:2個のSpread間での[Enter]キー、矢印キーなどでフォーカス移動を行う方法
VB.NET:Spreadの数値セルタイプを使ってデータメンテナンスのプログラムに使う方法
VB.NET:Spreadのテキストセルでバイト数入力制限を掛ける方法

Visual Basic 2013逆引き大全 555の極意【電子書籍】[ 増田智明 ]

価格: 2,527円
(2016/09/29 14:32時点 )

感想:0件

デル株式会社


楽天市場

2016年3月19日 (土)

VB.NET:Spreadのテキストセルでバイト数入力制限を掛ける方法

Spreadのテキストセルで入力する文字数をバイト数で制限する方法について、 Shift-JISエンコーディングのバイト配列処理メソッドを使って行います。

バイト数制限というのは、ほぼShift-JISに由来する考え方で、 データベースの文字列定義をShift-JISにしておくと オラクルのVARCHAR2のデータ型でもバイト数制限は必要でした。

以下にソースを示しますが、少し説明します。
最初にフォームロード時に、Shift-JISの文字エンコーディングを生成し、 Spreadの編集モードセルのテキスト変更時イベント処理と、 データモデルに変更時イベント処理を宣言しています。
また、両方のイベントで使う、文字列の最後の漢字の泣き別れを防ぐ関数導入しました。 既に入力された文字が"あいうえ1"の場合に、さらに漢字で"お"と入力されても "お"の文字の前半分が残らない様にしています。
Spreadbyte


最後の「漢字の泣き別れ」処理関数ですが、 上の例で既入力が"あいうえ1"でさらに漢字で"お"と入力した場合は、 2行目の str "あいうえ1・"となり、 最後の文字が漢字の中点になってしまいます。

結果 GetByteCount すると1バイト増えて  nLen よりも必ず大きい値になります。 それでこの場合に、最初にバイト配列化した長さを nLen-1 にして文字列化することで "あいうえ1"となります。

■関連記事
.NET開発テクノロジ入門2016年版Visual Studio 2015対応版
VB.NET:SpreadでのEnter時にセルを右移動させる方法
VB.NET:Spreadでフォーカスを持っていない時にセル枠を表示しない設定
VB.NET:Spreadのヘッダカラム及び、通常のカラムの連結
VB.NET:Spreadのシートへの簡単な一覧データの設定について
VB.NET:Spreadのシートのセルにボタン、テキスト、チェックボックスのセルタイプの設定
VB.NET:Spreadのセルのボタンクリック時のイベント処理
VB.NET:Spreadのセルへのデータ設定の描画速度アップ
VB.NET:Spreadのセルのチップウインドウで別に設定された文字列を表示する
VB.NET:Spreadでデータ一覧表示を簡単に行う方法について
VB.NET:Spreadデータ一覧表示での行選択処理(CellDoubleClickイベント , KeyDownイベント)
VB.NET:Spreadデータ一覧表示での行選択処理(CellDoubleClickイベント , KeyDownイベント)その2
VB.NET:Spreadデータ一覧表示での自動ソート実行時に複数のソート条件を指定する方法について
VB.NET:Spreadで異なるSPREADコントロール間でシートデータのコピーを行う方法
VB.NET:SpreadでのCSV出力とCSV入力を使って、異なるSPREADコントロール間でシートデータのコピーを行う方法
VB.NET:SpreadシートのPDF出力と表示を行う方法
VB.NET:2個のSpread間での[Enter]キー、矢印キーなどでフォーカス移動を行う方法
VB.NET:Spreadの数値セルタイプを使ってデータメンテナンスのプログラムに使う方法
VB.NET:Spreadのチェックボックス型セルにはCheckChangedイベントを、ボタン型セルにはClickイベントの発生方法


デル株式会社
楽天市場

2016年3月18日 (金)

VB.NET:Spreadの数値セルタイプを使ってデータメンテナンスのプログラムに使う方法

マスタのメンテテンス用プログラムとしては、1個のウインドウでいろんな項目を入力するのですが、 基本的には項目名とそれに対応するデータ入力コントロールとしてテキストボックス等を設置します。
このテキストボックスには入力の書式や、キーデータの選択等を自分で組んでやる必要があります。 市販の入力用コントロールを使えばいいのですが、自分で組むと結構大変です。
そこで、SPREADの出番なのですが、SPREAD自身には既に入力コントロールが備わっています。 これを使わない手はありません。SPREADなので表形式になってしまいますが、 この形が許されるのであれば、SPREADを使っていいのではと思います。

SPREADには、数値セルタイプとして CurrencyCellType , NumberCellType がありますが、 今回は NumberCellType を使って数値用のメンテナンスを行う場合を想定した例を紹介します。

画面の表示は以下の様になります。 Num1
以下の今回のソースを示しますが、フォームのロード時に全ての数値セルの CellType を設定しています。 尚、最後のコード的なセルは、通常では編集入力後の表示で先頭ゼロを行う様に、  NumberCellType を拡張したクラスを定義しています。
また、セルの編集時には背景色と文字色を変更して入力を分かりやすくしています。


下図は、「Button1」をクリックした時の表示です。 Num2_2

■SPREADをコントロールを何個も設置

SPREADの表形式が気に入らないのであれば、テキストボックスを何個も設置する様に1セルしかないSPREADを個別に設置し、 それぞれのSPREADのセルにCellTypeを設定してやれば テキストボックス的に使えます。
この方法だと、SPREADコントロールを何個も設置するのでプログラムの動きが重くなるかも しれませんが、意外と使える方法だと思いますが、如何でしょうか?

■関連記事
VB.NET:SpreadでのEnter時にセルを右移動させる方法
VB.NET:Spreadでフォーカスを持っていない時にセル枠を表示しない設定
VB.NET:Spreadのヘッダカラム及び、通常のカラムの連結
VB.NET:Spreadのシートへの簡単な一覧データの設定について
VB.NET:Spreadのシートのセルにボタン、テキスト、チェックボックスのセルタイプの設定
VB.NET:Spreadのセルのボタンクリック時のイベント処理
VB.NET:Spreadのセルへのデータ設定の描画速度アップ
VB.NET:Spreadのセルのチップウインドウで別に設定された文字列を表示する
VB.NET:Spreadでデータ一覧表示を簡単に行う方法について
VB.NET:Spreadデータ一覧表示での行選択処理(CellDoubleClickイベント , KeyDownイベント)
VB.NET:Spreadデータ一覧表示での行選択処理(CellDoubleClickイベント , KeyDownイベント)その2
VB.NET:Spreadデータ一覧表示での自動ソート実行時に複数のソート条件を指定する方法について
VB.NET:Spreadで異なるSPREADコントロール間でシートデータのコピーを行う方法
VB.NET:SpreadでのCSV出力とCSV入力を使って、異なるSPREADコントロール間でシートデータのコピーを行う方法
VB.NET:SpreadシートのPDF出力と表示を行う方法
VB.NET:2個のSpread間での[Enter]キー、矢印キーなどでフォーカス移動を行う方法
VB.NET:Spreadのテキストセルでバイト数入力制限を掛ける方法
VB.NET:Spreadのチェックボックス型セルにはCheckChangedイベントを、ボタン型セルにはClickイベントの発生方法

デル株式会社
楽天市場

2016年3月13日 (日)

VB.NET:2個のSpread間での[Enter]キー、矢印キーなどでフォーカス移動を行う方法

2個のSPREADコントロールをフォームに貼って、それぞれ2列×5行のシートを同じ様に設定します。
基本的な設定はSPREADコントロールのデザイナで設定していますが、以下の様な表示になります。

Spread1


今回の動作の想定は以下の様に考えます。
・セルは全てテキスト入力で「←」「→」はセル内での左右移動
・「Tab」、「Enter」、「Ctrl」+「←」、「Ctrl」+「→」はアクティブセルの移動
 但し、左SPREADのDATA2の最下行セルの場合、右SPREADのDATA1の先頭セルに移動
 また、右SPREADのDATA1の先頭セルの場合、左SPREADのDATA2の最下行セルに移動

今回の処理では以下の処理が肝になります。


■初期処理でのSPREADのキー動作設定

そのままですと、矢印キーなどでアクティブセルの移動ができないのでキー制御をフォームロード時に行います。
・入力マップの変更で編集中セルでの「Enter」キー動作を指定します。 ・各セルをTextCellTypeにしますが、「矢印キー」の動作を、「矢印キー」のみはカーソルのセル内のみ左・右移動で、 「Ctrl」+「矢印キー」はセル編集を終了し、アクティブセルのカーソル方向移動に設定します。

■Advanceイベントでの処理

AdvanceイベントはSPREADコントロールからフォーカスが移動する場合に発生します。 今回の場合は以下のキー入力でイベントが発生します。
・DATA1カラムで「Shift」+「←」、「Tab」、「Enter」
・DATA2カラムで「Shift」+「→」、「Tab」、「Enter」
・DATA1カラム及びDATA2カラムの先頭行で「↑」
・DATA1カラム及びDATA2カラムの最下行で「↓」

左SPREADでのAdvanceイベントで、DATA2カラムで最下行の場合、イベントの「e」引数の「Cancel」プロパティを Falseにすることでデフォルト処理をさせることで、右SPREADにフォーカスが移動します。

右SPREADでのAdvanceイベントで、DATA1カラムで先頭行の場合、イベントの「e」引数の「Cancel」プロパティを Falseにすることでデフォルト処理をさせることで、左SPREADにフォーカスが移動します。

■EditModeOnイベントでの処理

尚、現在のセルを分かりやすくするために、EditModeOnイベント(編集開始時処理)で編集中セルの背景色を変更しています。

デル株式会社

■関連記事
VB.NET:SpreadでのEnter時にセルを右移動させる方法
VB.NET:Spreadでフォーカスを持っていない時にセル枠を表示しない設定
VB.NET:Spreadのヘッダカラム及び、通常のカラムの連結
VB.NET:Spreadのシートへの簡単な一覧データの設定について
VB.NET:Spreadのシートのセルにボタン、テキスト、チェックボックスのセルタイプの設定
VB.NET:Spreadのセルのボタンクリック時のイベント処理
VB.NET:Spreadのセルへのデータ設定の描画速度アップ
VB.NET:Spreadのセルのチップウインドウで別に設定された文字列を表示する
VB.NET:Spreadでデータ一覧表示を簡単に行う方法について
VB.NET:Spreadデータ一覧表示での行選択処理(CellDoubleClickイベント , KeyDownイベント)
VB.NET:Spreadデータ一覧表示での行選択処理(CellDoubleClickイベント , KeyDownイベント)その2
VB.NET:Spreadデータ一覧表示での自動ソート実行時に複数のソート条件を指定する方法について
VB.NET:Spreadで異なるSPREADコントロール間でシートデータのコピーを行う方法
VB.NET:SpreadでのCSV出力とCSV入力を使って、異なるSPREADコントロール間でシートデータのコピーを行う方法
VB.NET:SpreadシートのPDF出力と表示を行う方法
VB.NET:Spreadの数値セルタイプを使ってデータメンテナンスのプログラムに使う方法
VB.NET:Spreadのテキストセルでバイト数入力制限を掛ける方法
VB.NET:Spreadのチェックボックス型セルにはCheckChangedイベントを、ボタン型セルにはClickイベントの発生方法


楽天市場

2016年3月 7日 (月)

VB.NET:SpreadシートのPDF出力と表示を行う方法

SPREADには、シートのそのままをPDFに出力する機能が備わっています。 「SheetView」クラスの「PrintInfo」のPDF出力の指示を行えば、「SheetView」の印刷メソッドでPDF出力ができます。

以下のソースですが、「Button1_Click」の前までは以前のソースを踏襲していまして、 単に単一行選択表示で1000行3カラムのテストデータを表示しています。

「Button1_Click」の中で、PDFファイルへの出力処理を行っています。 「ActiveSheet.PrintInfo」の「PrintToPdf」をTrueに設定し、「PdfFileName」にPDF出力ファイル名を設定しています。 その後、SPREADコントロールの「PrintSheet」メソッドで「ActiveSheet」の印刷処理を行います。

ここで注意点があります。「PrintSheet」メソッドの直後でのPDFファイルの表示処理がコメントになっていますが、 コメント部分を実行に戻して処理すると、「AcrobatReader」は起動するのですがPDFファイルが見つからないとエラーになります。 「PrintSheet」メソッドの直後ではタイミング的に、まだPDFファイルの出力が終了していないので、エラーになる様です。

そこで解決方法として、「PrintSheet」メソッドの終了時点で「AcrobatReader」を起動することになります。 ちょうど「PrintMessageBox」イベントがそれに当たります。引数の「e」の「BeginPrinting」が「False」になった時が 「PrintSheet」が終わったことを通知してくれますので、そのタイミングで「AcrobatReader」起動の関数をコールします。


下図は、プログラムが起動しした時の表示です。

Pdf1


下図は、「Button1」をクリックした時の表示です。

Pdf2

■関連記事
VB.NET:SpreadでのEnter時にセルを右移動させる方法
VB.NET:Spreadでフォーカスを持っていない時にセル枠を表示しない設定
VB.NET:Spreadのヘッダカラム及び、通常のカラムの連結
VB.NET:Spreadのシートへの簡単な一覧データの設定について
VB.NET:Spreadのシートのセルにボタン、テキスト、チェックボックスのセルタイプの設定
VB.NET:Spreadのセルのボタンクリック時のイベント処理
VB.NET:Spreadのセルへのデータ設定の描画速度アップ
VB.NET:Spreadのセルのチップウインドウで別に設定された文字列を表示する
VB.NET:Spreadでデータ一覧表示を簡単に行う方法について
VB.NET:Spreadデータ一覧表示での行選択処理(CellDoubleClickイベント , KeyDownイベント)
VB.NET:Spreadデータ一覧表示での行選択処理(CellDoubleClickイベント , KeyDownイベント)その2
VB.NET:Spreadデータ一覧表示での自動ソート実行時に複数のソート条件を指定する方法について
VB.NET:Spreadで異なるSPREADコントロール間でシートデータのコピーを行う方法
VB.NET:SpreadでのCSV出力とCSV入力を使って、異なるSPREADコントロール間でシートデータのコピーを行う方法
VB.NET:2個のSpread間での[Enter]キー、矢印キーなどでフォーカス移動を行う方法
VB.NET:Spreadの数値セルタイプを使ってデータメンテナンスのプログラムに使う方法
VB.NET:Spreadのテキストセルでバイト数入力制限を掛ける方法
VB.NET:Spreadのチェックボックス型セルにはCheckChangedイベントを、ボタン型セルにはClickイベントの発生方法

Visual Basic 2013逆引き大全 555の極意【電子書籍】[ 増田智明 ]

価格: 2,527円
(2016/09/29 14:32時点 )

感想:0件


デル株式会社


楽天市場

2016年3月 5日 (土)

VB.NET:SpreadでのCSV出力とCSV入力を使って、異なるSPREADコントロール間でシートデータのコピーを行う方法

前回は、異なるSPREADのシート間でのコピーを、クリップボードを使う方法と、XML文字列を使う方法で行いましたが、 今回はCSVファイルへの出力と入力を使って行います。

ソースのほとんどは「異なるSPREADのシート間でのコピー」のものと同じなので、 「Button1」クリックでの処理が異なる部分のみ以下に示します。

コピー元のActiveSheetの「SaveTextFile」メソッドを使うことで”test.csv”にCSV出力します。 その後、コピー先のActiveSheetの「LoadTextFile」メソッドで”test.csv”をCSV入力します。


下図は、「Button1」クリック後の表示です。

Copy3

■関連記事
VB.NET:SpreadでのEnter時にセルを右移動させる方法
VB.NET:Spreadでフォーカスを持っていない時にセル枠を表示しない設定
VB.NET:Spreadのヘッダカラム及び、通常のカラムの連結
VB.NET:Spreadのシートへの簡単な一覧データの設定について
VB.NET:Spreadのシートのセルにボタン、テキスト、チェックボックスのセルタイプの設定
VB.NET:Spreadのセルのボタンクリック時のイベント処理
VB.NET:Spreadのセルへのデータ設定の描画速度アップ
VB.NET:Spreadのセルのチップウインドウで別に設定された文字列を表示する
VB.NET:Spreadでデータ一覧表示を簡単に行う方法について
VB.NET:Spreadデータ一覧表示での行選択処理(CellDoubleClickイベント , KeyDownイベント)
VB.NET:Spreadデータ一覧表示での行選択処理(CellDoubleClickイベント , KeyDownイベント)その2
VB.NET:Spreadデータ一覧表示での自動ソート実行時に複数のソート条件を指定する方法について
VB.NET:Spreadで異なるSPREADコントロール間でシートデータのコピーを行う方法
VB.NET:SpreadシートのPDF出力と表示を行う方法
VB.NET:2個のSpread間での[Enter]キー、矢印キーなどでフォーカス移動を行う方法
VB.NET:Spreadの数値セルタイプを使ってデータメンテナンスのプログラムに使う方法
VB.NET:Spreadのテキストセルでバイト数入力制限を掛ける方法
VB.NET:Spreadのチェックボックス型セルにはCheckChangedイベントを、ボタン型セルにはClickイベントの発生方法

デル株式会社

楽天市場

VB.NET:Spreadで異なるSPREADコントロール間でシートデータのコピーを行う方法

異なるSPREADのシート間でのコピーを行う方法が2種類あります。 一つはクリップボードを使う方法と、XML文字列を使う方法です。

■クリップボードを使う方法
コピー元のActiveSheetの「ClipboardCopy」メソッドを使うことで、指定された範囲のセルをクリップボードにコピーします。 その後、コピー先のActiveSheetの行・列の数を合わせておいて、「ClipboardPaste」メソッドで貼付を行います。 以下のソースでは、「Button1_Click」の処理です。

■XML文字列を使う方法
コピー元のシートを「GetObjectXml」メソッドにてシリアライズ化しXML文字列化します。 その後、コピー先のシートに「SetObjectXml」メソッドにてXML文字列を逆シリアライズ化してやります。 以下のソースでは、「Button2_Click」の処理です。
尚、ここではやっていませんが、数式を含むシートの場合には、シートの追加後にLoadFormulasメソッドを呼び出すことで数式が有効になるそうです。


下図は、プログラムが起動した時の表示です。

Copy1


下図は、「Button2」をクリック後の表示です。「Button1」と「Button2」では若干結果が異なります。 「Button1」では行選択状態はコピーされず、左上のセルがアクティブになります。 「Button2」は行選択状態もコピーされる様です。

Copy2

■関連記事
VB.NET:SpreadでのEnter時にセルを右移動させる方法
VB.NET:Spreadでフォーカスを持っていない時にセル枠を表示しない設定
VB.NET:Spreadのヘッダカラム及び、通常のカラムの連結
VB.NET:Spreadのシートへの簡単な一覧データの設定について
VB.NET:Spreadのシートのセルにボタン、テキスト、チェックボックスのセルタイプの設定
VB.NET:Spreadのセルのボタンクリック時のイベント処理
VB.NET:Spreadのセルへのデータ設定の描画速度アップ
VB.NET:Spreadのセルのチップウインドウで別に設定された文字列を表示する
VB.NET:Spreadでデータ一覧表示を簡単に行う方法について
VB.NET:Spreadデータ一覧表示での行選択処理(CellDoubleClickイベント , KeyDownイベント)
VB.NET:Spreadデータ一覧表示での行選択処理(CellDoubleClickイベント , KeyDownイベント)その2
VB.NET:Spreadデータ一覧表示での自動ソート実行時に複数のソート条件を指定する方法について
VB.NET:SpreadでのCSV出力とCSV入力を使って、異なるSPREADコントロール間でシートデータのコピーを行う方法
VB.NET:SpreadシートのPDF出力と表示を行う方法
VB.NET:2個のSpread間での[Enter]キー、矢印キーなどでフォーカス移動を行う方法
VB.NET:Spreadの数値セルタイプを使ってデータメンテナンスのプログラムに使う方法
VB.NET:Spreadのテキストセルでバイト数入力制限を掛ける方法
VB.NET:Spreadのチェックボックス型セルにはCheckChangedイベントを、ボタン型セルにはClickイベントの発生方法


デル株式会社


楽天市場

2016年3月 4日 (金)

VB.NET:Spreadデータ一覧表示での自動ソート実行時に複数のソート条件を指定する方法について

SPREADを使ってデータの一覧を表示し、ソート処理を追加するのは比較的簡単に行えます。

アクティブシートの設定で各カラムの「AllowAutoSort」プロパティを「True」にすればソートが可能になります。 以下のソースを動作させた最初の表示が以下の図になります。

Sort1


各カラムのヘッダにソートのインジケータが表示されるので、 そのマークをクリックすることで自動でソート処理がなされます。


但し、このままでは少し不満な点が残ります。 下図は、2カラム目でソートをさせた時の結果の表示です。

Sort2


2カラム目のみがソート条件になっているので、1カラム目と3カラム目がうまいこと順番にならない様です。 この現象を解消するために、列ヘッダクリックによるソート開始時イベントで以下の様にし、ソート条件を複数に指定します。

このイベント処理をソースに追加すると下図の様な表示になります。

Sort3

■関連記事
VB.NET:SpreadでのEnter時にセルを右移動させる方法
VB.NET:Spreadでフォーカスを持っていない時にセル枠を表示しない設定
VB.NET:Spreadのヘッダカラム及び、通常のカラムの連結
VB.NET:Spreadのシートへの簡単な一覧データの設定について
VB.NET:Spreadのシートのセルにボタン、テキスト、チェックボックスのセルタイプの設定
VB.NET:Spreadのセルのボタンクリック時のイベント処理
VB.NET:Spreadのセルへのデータ設定の描画速度アップ
VB.NET:Spreadのセルのチップウインドウで別に設定された文字列を表示する
VB.NET:Spreadでデータ一覧表示を簡単に行う方法について
VB.NET:Spreadデータ一覧表示での行選択処理(CellDoubleClickイベント , KeyDownイベント)
VB.NET:Spreadデータ一覧表示での行選択処理(CellDoubleClickイベント , KeyDownイベント)その2
VB.NET:Spreadで異なるSPREADコントロール間でシートデータのコピーを行う方法
VB.NET:SpreadでのCSV出力とCSV入力を使って、異なるSPREADコントロール間でシートデータのコピーを行う方法
VB.NET:SpreadシートのPDF出力と表示を行う方法
VB.NET:2個のSpread間での[Enter]キー、矢印キーなどでフォーカス移動を行う方法
VB.NET:Spreadの数値セルタイプを使ってデータメンテナンスのプログラムに使う方法
VB.NET:Spreadのテキストセルでバイト数入力制限を掛ける方法
VB.NET:Spreadのチェックボックス型セルにはCheckChangedイベントを、ボタン型セルにはClickイベントの発生方法


デル株式会社


楽天市場

VB.NET:Spreadデータ一覧表示での行選択処理(CellDoubleClickイベント , KeyDownイベント)その2

前回は、SPREADを使ってデータの一覧を表示し、セルダブルクリック(CellDoubleClick)もしくはキーダウン(KeyDown)イベント時に メッセージボックスを表示するという簡単な処理を行いました。

今回は少し進んで、セルダブルクリック及びキーダウンイベント時に、別フォームを作成し表示させてみます。 別フォームには3個のラベルを貼って、データ一覧の各カラムの内容を表示します。

フォームロード時にSPREADの初期化などは前回までと同様ですが、データ表示用の関数(DisplayOneData)を新規に作成し 行番号を引数で渡すことで別フォーム(Form2)を生成後、その行番号の各カラム値を3個のラベルに設定しています。 別フォームは「Show」メソッドで表示しています。


下図は、フォーム表示後、2行目をダブルクリックしてForm2を表示した時の表示です。
しかし、実際の動作としては、Form1でダブルクリック後、Form2が表示されるのですが、 フォーカスは依然としてForm1にあり、Form2はForm1の下に表示されます。 (キーダウン時の方は、Form2はForm1の上に表示されます)

Select11_2


この現象を避けるには、ダブルクリック時処理を以下の様にし、データ表示のフォーム表示メソッドを「ShowDialog」に変更することです。


もう一つ解決策がありまして、フォームの表示メソッドを「Show」のままで行う方法です。
ダブルクリック時にダブルクリックが在った証拠フラグをONし、 マウスアップ時にダブルクリックフラグがONならば、データ表示を行う様にすることです。 (マウスアップ時には、Form1からフォーカスが無くなる様です。)

一覧データ表示移行の部分を、以下のソースの様にします。

■関連記事
VB.NET:SpreadでのEnter時にセルを右移動させる方法
VB.NET:Spreadでフォーカスを持っていない時にセル枠を表示しない設定
VB.NET:Spreadのヘッダカラム及び、通常のカラムの連結
VB.NET:Spreadのシートへの簡単な一覧データの設定について
VB.NET:Spreadのシートのセルにボタン、テキスト、チェックボックスのセルタイプの設定
VB.NET:Spreadのセルのボタンクリック時のイベント処理
VB.NET:Spreadのセルへのデータ設定の描画速度アップ
VB.NET:Spreadのセルのチップウインドウで別に設定された文字列を表示する
VB.NET:Spreadでデータ一覧表示を簡単に行う方法について
VB.NET:Spreadデータ一覧表示での行選択処理(CellDoubleClickイベント , KeyDownイベント)
VB.NET:Spreadデータ一覧表示での自動ソート実行時に複数のソート条件を指定する方法について
VB.NET:Spreadで異なるSPREADコントロール間でシートデータのコピーを行う方法
VB.NET:SpreadでのCSV出力とCSV入力を使って、異なるSPREADコントロール間でシートデータのコピーを行う方法
VB.NET:SpreadシートのPDF出力と表示を行う方法
VB.NET:2個のSpread間での[Enter]キー、矢印キーなどでフォーカス移動を行う方法
VB.NET:Spreadの数値セルタイプを使ってデータメンテナンスのプログラムに使う方法
VB.NET:Spreadのテキストセルでバイト数入力制限を掛ける方法
VB.NET:Spreadのチェックボックス型セルにはCheckChangedイベントを、ボタン型セルにはClickイベントの発生方法


デル株式会社


楽天市場