• ベストアンサー

rangeの記述方法

vb.net2008を使用しております。 エクセルのセルへの書き込みで ExcelSheet.Range("G120") = "=SUBTOTAL(9,G2:G118)" とした場合 G120に G2~G118 の合計が書き込まれるのは わかったのですが  G118の部分が 任意に変わる場合 G118 のところの 記述はどうすればよろしいのでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.5

#4です。 >_sheet .Range("G"&ToCell +4).Formula = "=SUBTOTAL(9,G2:G"&ToCell&")" >のコードを打ち込むと ToCell以降 エラーが出てしまいます。 それって ToCell の両サイドの & をくっつけているからでは? こうではないのかな。 _sheet .Range("G"&ToCell +4).Formula = "=SUBTOTAL(9,G2:G" & ToCell & ")"

to727jp
質問者

お礼

ありがとうございます。 できました。 お恥ずかしい質問をしてすいませんでした。 勉強になります。

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.4

#3です。 例えばA列の最終行を基にするなら、 Dim ToCell As Integer 'OR Long? ToCell = _Sheet.Range("A" & _Sheet.Rows.Count).End(Excel.XlDirection.xlUp).Row でもいけるのではないかと。

to727jp
質問者

お礼

お世話になります。 データの最終行は ソフト上で認識できていて _ary.Length のなかに 実際は ”118” が入ってます。 _sheet .Range("G"&ToCell +4).Formula = "=SUBTOTAL(9,G2:G"&ToCell&")" のコードを打ち込むと ToCell以降 エラーが出てしまいます。 整数型宣言してやって見たのですが 同じでした。

すると、全ての回答が全文表示されます。
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.3

#2です。 >Dim ToCell As String >ToCell = (_ary.Length).ToString 'データ最終行代入 行を求めるのなら Dim ToCell As Integer ToCell = _ary.Length 'データ最終行代入 になるのでは?(セル番地を任意に入れるのかと思いました) でもLongの方がいいのか・・・? そこまで行数はないのかな?

すると、全ての回答が全文表示されます。
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

#1です。 >記述が間違っていたのかもしれません。 myRange を文字型で宣言して myRange = "G118" ExcelSheet.Range("G120") = "=SUBTOTAL(9,G2:" & myRange & ")" ではどうでしょう?(省きすぎたかな?)

to727jp
質問者

お礼

For i As Integer = 1 To _ary.Length - 1 Dim _s() As String = _ary(i).Split(",") _sheet.Cells(i + 1, 1).Value = _s(1).Replace("""", "") '受注日 _sheet.Cells(i + 1, 2).value = _s(51).Replace("""", "") '納期日 _sheet.Cells(i + 1, 3).value = _s(13).Replace("""", "") '営業担当者名称 _sheet.Cells(i + 1, 4).value = _s(26).Replace("""", "") '得意先略称 _sheet.Cells(i + 1, 5).value = _s(64).Replace("""", "") '商品名・仕様・色 _sheet.Cells(i + 1, 6).value = _s(68).Replace("""", "") '数量 _sheet.Cells(i + 1, 7).value = _s(74).Replace("""", "") '売上単価 _sheet.Cells(i + 1, 8).value = _s(75).Replace("""", "") '売上金額 _sheet.Cells(i + 1, 9).value = _s(81).Replace("""", "") '仕入単価 _sheet.Cells(i + 1, 10).value = _s(82).Replace("""", "") '仕入金額 Next Dim ToCell As String ToCell = (_ary.Length).ToString 'データ最終行代入 _sheet.Range("K2:K" & ToCell).Formula = "=H2-J2" '差益計算式一括代入 _sheet.Range("L2:L" & ToCell).Formula = "=K2/H2" '差益率計算式一括代入 _sheet.Cells(ToCell + 4, 8).Interior.ColorIndex = 6 '売上金額合計セル色変更 _sheet.Cells(ToCell + 4, 11).Interior.ColorIndex = 6 '差益合計セル色変更 _sheet .Range("G"&ToCell +4).Formula = "=SUBTOTAL(9,G2:G"&ToCell&")" こんな感じで使っているのですが エラー 1 型文字 '&' が宣言されたデータ型 'String' と一致しません。 C:\Documents and Settings\NSL\デスクトップ\自動集計ソフト\CSV集計ソフト\CSV集計ソフト\Form1.vb 162 71 CSV集計ソフト エラー 2 ステートメントの終わりを指定してください。 C:\Documents and Settings\NSL\デスクトップ\自動集計ソフト\CSV集計ソフト\CSV集計ソフト\Form1.vb 162 78 CSV集計ソフト というエラーが出てしまいます。

to727jp
質問者

補足

For i As Integer = 1 To _ary.Length - 1 Dim _s() As String = _ary(i).Split(",") _sheet.Cells(i + 1, 1).Value = _s(1).Replace("""", "") '受注日 _sheet.Cells(i + 1, 2).value = _s(51).Replace("""", "") '納期日 _sheet.Cells(i + 1, 3).value = _s(13).Replace("""", "") '営業担当者名称 _sheet.Cells(i + 1, 4).value = _s(26).Replace("""", "") '得意先略称 _sheet.Cells(i + 1, 5).value = _s(64).Replace("""", "") '商品名・仕様・色 _sheet.Cells(i + 1, 6).value = _s(68).Replace("""", "") '数量 _sheet.Cells(i + 1, 7).value = _s(74).Replace("""", "") '売上単価 _sheet.Cells(i + 1, 8).value = _s(75).Replace("""", "") '売上金額 _sheet.Cells(i + 1, 9).value = _s(81).Replace("""", "") '仕入単価 _sheet.Cells(i + 1, 10).value = _s(82).Replace("""", "") '仕入金額 Next Dim ToCell As String ToCell = (_ary.Length).ToString 'データ最終行代入 _sheet.Range("K2:K" & ToCell).Formula = "=H2-J2" '差益計算式一括代入 _sheet.Range("L2:L" & ToCell).Formula = "=K2/H2" '差益率計算式一括代入 _sheet.Cells(ToCell + 4, 8).Interior.ColorIndex = 6 '売上金額合計セル色変更 _sheet.Cells(ToCell + 4, 11).Interior.ColorIndex = 6 '差益合計セル色変更 _sheet .Range("G"&ToCell +4).Formula = "=SUBTOTAL(9,G2:G"&ToCell&")" こんな感じで使っているのですが エラー 1 型文字 '&' が宣言されたデータ型 'String' と一致しません。 C:\Documents and Settings\NSL\デスクトップ\自動集計ソフト\CSV集計ソフト\CSV集計ソフト\Form1.vb 162 71 CSV集計ソフト エラー 2 ステートメントの終わりを指定してください。 C:\Documents and Settings\NSL\デスクトップ\自動集計ソフト\CSV集計ソフト\CSV集計ソフト\Form1.vb 162 78 CSV集計ソフト というエラーが出てしまいます。

すると、全ての回答が全文表示されます。
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

>= "=SUBTOTAL(9,G2:G118)" を myRange = "G118" = "=SUBTOTAL(9,G2:" & myRange & ")" とかでは?

to727jp
質問者

お礼

昨日はお世話になりました。 回答していただいたやり方で やってみたのですが エラーがでてしまったんです。 記述が間違っていたのかもしれません。 PCが調子悪いので 復活したら もう一度やってみます。

すると、全ての回答が全文表示されます。

関連するQ&A