技術メモ

【Excel】行数や数式が多くて重いエクセルファイルの高速化サービス

行数や数式の多いExcelファイルを化するには、以下の対策が有効です。

  • 数式をVBA(Excelマクロ)で実現する
  • 数式を保持するのではなく、結果の値のみを保持する
  • セルの更新は配列を利用する
  • VLookUpが遅い場合は、VBAのDictionaryを利用する
  • 計算中は描画系の処理を停止する

これらのテクニックを利用することにより、かなり高速化が期待できます。

個人でのExcelファイルのメンテナンスが難しい場合は、以下のサービスをご活用ください。

Excelの動作を軽くします エクセルファイルが遅くて作業に支障がある場合にオススメ!

【C#】【VB.NET】専用Windowsソフトウェア開発サービス

オリジナルのWindowsアプリケーション作成サービスを提供しています。
自社の業務にあった専用のアプリを作成して、業務を効率化しませんか?
まずはお気軽にご相談ください。お問い合わせ

仕事に役立つWindowsアプリを開発します 市販ソフトで不満な方に。あなただけの専用アプリを作ります!

【C#】【VB.NET】サンプルアプリ開発サービス

ココナラで、C#またはVB.NETによるサンプルアプリの開発サービスを出店しております。
プログラム学習中などでつまずいてしまった場合に、お気軽にご利用ください。

C#、VB.NETのサンプルアプリ作成します Windowsアプリ(.NET)作成でつまずいたときに!

【C#】DLLのカスタムコントロールを参照しようとすると「ツールボックスに配置できるコンポーネントが何もありません。」が表示される

現象

Visual Studio 2013 Update5/Windows10にて発生。

カスタムコントロールが存在するDLLを参照設定したが、ツールボックスに表示されない。

ツールボックスを右クリック→アイテムの選択→.NET Frameworkコンポーネントの、「参照」ボタン押下にてDLLを指定すると、「ツールボックスに配置できるコンポーネントが何もありません。」が表示され、ツールボックスに追加できない。 続きを読む 【C#】DLLのカスタムコントロールを参照しようとすると「ツールボックスに配置できるコンポーネントが何もありません。」が表示される

【C#】【VB.NET】電卓アプリのソースコード提供サービス

概要

Visual Studio2019で作成した、電卓アプリとその全ソースコードをお渡しいたします。(C#またはVB.NETの何れか1つ)
電卓は簡単なように見えますが、実際には複雑な処理を記載しなければならず、初心者にはハードルが高いです。
お渡しするソースコードには、すべてコメントを記載しておりますので、コードの実践的な学習に最適です。

実現している機能

  • 四則演算(足し算、引き算、掛け算、割り算)
  • 小数点を含む数値
  • マイナス値
  • テンキーからの操作(数字キー、演算子含む)
  • Cボタン(左辺、演算子、右辺のすべての入力値を消す)
  • CEボタン(現在入力中の値を消す)
  • 整数部の3桁区切り(123,456.789 形式で表示)
  • Ctrl+Cによる画面に表示されている内容をクリップボードへコピー
  • Ctrl+Vによるクリップボードの内容を画面に貼り付け
  • 履歴表示機能

注意事項

プログラミング(コーディング)入門者向けのサンプルソースになります。ご購入頂いた個人でのご利用は問題ありませんが、第3者への公開は不可となります。

お試し動作確認

お渡しするソースから作成したEXEはこちらからお試しダウンロードできます
※ダウンロード後、Zipファイルを解凍する前に、ファイルを右クリック→全般タブの一番下のセキュリティの「許可する」にチェックを入れて、「OK」ボタンをクリックした後に、解凍してください。

尚、同じEXEをVectorでも公開しています。

ご購入はこちらからどうぞ

C#、VB.NETの電卓アプリとそのソース渡します C#またはVB.NETを学習中の初心者、入門者向け!

【C#】DataGridViewで良く利用する設定たち

設定

//セルをクリックしただけで、入力カーソルを有効にする
dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;
            
//複数選択不可
dataGridView1.MultiSelect = false;

//セル選択ではなく、行全体選択
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

//一部の列を編集不可にする
dataGridView1.Columns[1].ReadOnly = true;

//ヘッダ列をクリックした際の並び替え禁止
foreach (DataGridViewColumn c in dataGridView1.Columns)
    c.SortMode = DataGridViewColumnSortMode.NotSortable;

//ボタンの背景色が白くなってしまうのを防ぐ
DataGridViewCellStyle cellStyle = new DataGridViewCellStyle();
cellStyle.BackColor = SystemColors.Control; //ボタンの標準色を設定
Column3.DefaultCellStyle = cellStyle;

値取得

//選択された行のセル値取得
if (dataGridView1.SelectedCells.Count > 0)
{
    int columnIndex = dataGridView1.SelectedCells[0].ColumnIndex;     //選択列
    int rowIndex = dataGridView1.SelectedCells[0].RowIndex;           //選択行

    string cellValue = "";

    if (dataGridView1[columnIndex, rowIndex].Value != null)
    {
        cellValue = dataGridView1[columnIndex, rowIndex].Value.ToString();   //該当セルの値
    }
}

セルを抜けなくてもCellValueChangedイベントを発生させる

private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
    if (dataGridView1.IsCurrentCellDirty)
    {
        //確定させる→セルを抜けなくてもCellValueChangedイベントが発生する
        dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
    }
}

【VB.NET】スタートアップフォームを変更する

Visual Studioのプロジェクト→プロパティをクリック。

アプリケーションのスタートアップフォームを変更すればOK!

尚、コンストラクタの引数が指定されているフォームはスタートアップフォームのリストに表示されない。

 

【C#】文字列から特定の末尾を除く【Trim,TrimEnd】

以下のようにTrimを使うことで末尾の特定の文字列を除くことができる。

string s = ",a,b,c,";

s = s.Trim(',');    //結果は「a,b,c」

但しこのコードの場合は、文字列の先頭にも特定の文字列が含まれた場合に、それも除かれてしまう。
そういった可能性が考えられる場合は、TrimEndを利用すればよい。

string s = ",a,b,c,";

s = s.TrimEnd(','); //結果は「,a,b,c」