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

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

新規登録して質問してみよう
ただいま回答率
85.46%
VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

0回答

631閲覧

VB.net エクセルから値を取得したはいいが、エクセルの書式が上書きされてしまう

ogizo

総合スコア1

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2021/04/01 05:50

編集2021/04/01 05:52

初学者です。
以下のコードで実行すると1度目は問題なく結果表示されるのですが、
2度目について1回目のものがそのまま表示されてしまいます。

エクセルを確認したところ1回目に実行したときに書式が書き換わっておりました。
何が問題かわかないため詳しい方おりましたらご教示頂ければ助かります。

Windows Forms、開発環境はVisual Studioとなります。

Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click '変数宣言 Dim ex As New Microsoft.Office.Interop.Excel.Application Dim sh As Microsoft.Office.Interop.Excel.Worksheet = Nothing Dim wb As Microsoft.Office.Interop.Excel.Workbook = Nothing Dim sh1 As Microsoft.Office.Interop.Excel.Worksheet = Nothing 'ファイルオープン wb = ex.Workbooks.Open(“D:\NewExcelBook111111.xlsx”) sh = wb.Sheets(“Sheet2”) sh1 = wb.Sheets(“Sheet3”) sh.Range(“G11”).Value = sh.Range(“G11”).Value 'セルの読み込み 法定時間内 sh.Range(“F11”).Value = sh.Range(“F11”).Value 'セルの読み込み 残業代 sh.Range(“H11”).Value = sh.Range(“H11”).Value 'セルの読み込み 深夜 sh.Range(“I11”).Value = sh.Range(“I11”).Value 'セルの読み込み 早朝 Dim a As Integer = 24 'シリアル値を変換 Dim jikyuu As Integer = 1000 '時給 Dim b As Double = sh.Range(“G11”).Value Dim c As Double = sh.Range(“F11”).Value Dim d As Double = sh.Range(“H11”).Value Dim f As Double = sh.Range(“I11”).Value Dim houtei As Integer = a * b * jikyuu Dim zangyo As Integer = a * c * jikyuu * 1.25 Dim shinya As Integer = a * d * jikyuu * 1.25 Dim soutyo As Integer = a * f * jikyuu * 1.25 Dim goukei As Integer = houtei + zangyo + shinya + soutyo sh1.Range(“C5”).Value = goukei sh1.Range(“D5”).Value = sh1.Range(“D5”).Value '10000円 sh1.Range(“E5”).Value = sh1.Range(“E5”).Value '5000円 sh1.Range(“F5”).Value = sh1.Range(“F5”).Value '1000円 sh1.Range(“G5”).Value = sh1.Range(“G5”).Value '500円 sh1.Range(“H5”).Value = sh1.Range(“H5”).Value '100円 sh1.Range(“I5”).Value = sh1.Range(“I5”).Value '50円 sh1.Range(“J5”).Value = sh1.Range(“J5”).Value '10円 sh1.Range(“K5”).Value = sh1.Range(“K5”).Value '5円 sh1.Range(“L5”).Value = sh1.Range(“L5”).Value '1円 Dim yen10000 As Integer = sh1.Range(“D5”).Value Dim yen5000 As Integer = sh1.Range(“E5”).Value Dim yen1000 As Integer = sh1.Range(“F5”).Value Dim yen500 As Integer = sh1.Range(“G5”).Value Dim yen100 As Integer = sh1.Range(“H5”).Value Dim yen50 As Integer = sh1.Range(“I5”).Value Dim yen10 As Integer = sh1.Range(“J5”).Value Dim yen5 As Integer = sh1.Range(“K5”).Value Dim yen1 As Integer = sh1.Range(“L5”).Value MessageBox.Show("1週間分の給料は" & goukei & "円です。" & ControlChars.NewLine & "10000円札は" & yen10000 & " 枚です。" & ControlChars.NewLine & "5000円札は" & yen5000 & " 枚です。" & ControlChars.NewLine & "1000円札は" & yen1000 & " 枚です。" & ControlChars.NewLine & "500円は" & yen500 & " 枚です。" & ControlChars.NewLine & "100円は" & yen100 & " 枚です。" & ControlChars.NewLine & "50円は" & yen50 & " 枚です。" & ControlChars.NewLine & "10円は" & yen10 & " 枚です。" & ControlChars.NewLine & "5円は" & yen5 & " 枚です。" & ControlChars.NewLine & "1円は" & yen1 & " 枚です。") wb.Save() ex.Quit() End Sub

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

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

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

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

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

YAmaGNZ

2021/04/01 06:01

一回目や二回目とは何のことでしょうか? また、書式が置き換わっているとは具体的に何を指すのでしょうか? sh.Range(“G11”).Value = sh.Range(“G11”).Value や sh1.Range(“D5”).Value = sh1.Range(“D5”).Value など同じものに代入していますが、合っていますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問