質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

VSTO

Visual Studio Tools for Office

Q&A

0回答

1703閲覧

C# VSTO ListObjectの列に数式を設定する方法

sasatera

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

VSTO

Visual Studio Tools for Office

0グッド

0クリップ

投稿2020/05/22 07:10

前提・実現したいこと

C# VSTO で EXCELテンプレートを作っています。

ブック上にはListObjectを持っており
ListObject上の全行で特定の列(A列とB列)を使った計算式(=A列+B列)をC列に設定したいです。
Excel上の特定の列の数値を変更したときに連動して計算される必要があるので
数式をセルに残したいのですが、以下記載の通りうまくいきませんでした。

VSTOの知識が浅く、また周りに有識者も少ないため質問させていただきました。
ご助言宜しくお願いいたします。

試したこと

試したことは以下です。

(1)デザイナー上のListObjectに数式を設定

実行前のVisualStudio画面のデザイナー上のListObjectの対象セルに直接数式を入れるとその時点では数式が設定されるのですが、
起動し対象のListObjectがデータバインドされると数式が消えてしまいます。

(2)ソースコード上で書式を設定

なので、データ取得後に、ソースコード上で全行に対し数式の設定をする方向で対応しようとしたのですが
セルに対し数式を設定した結果、Excel上では数式の計算結果のみが表示され、
設定したセルにカーソルを合わせても数式バーに数式が表示されないという状態になります。
数式の設定は以下のコードのように実装しましたが、[1] [2] どちらも同じく結果のみがセル上に設定されてしまいました。

C#

1 foreach (Excel.ListRow row in listObj.ListRows) 2 { 3 // 指定した列に数式設定 4 // [1].そのまま設定 5 //((dynamic)row).Range.Columns[colIndex] = "=A列 + B列"; 6 // [2].Formulaプロパティに設定 7 ((dynamic)row).Range.Columns[colIndex].Formula = "=A列 + B列"; 8 }

(3)セルの書式の保護

セルの書式の保護設定のチェックは外しています。

補足情報(FW/ツールのバージョンなど)

Visual Studio 2019

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2020/05/27 06:49

private void Sheet1_Startup(object sender, System.EventArgs e) { Cells[1, 1] = 10; Cells[1, 2] = 5; Cells[1, 3] = "=A1+B1"; Cells[1, 1] = 20; } これで普通に数式が指定でき、数式バーにも表示されました。 複雑なことをする前に、まずここから試してみてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問