none
VBでExcelのセル制御(HorizontalAlignment、罫線) RRS feed

  • 質問

  • お世話になります。

    Vista、VS2008、Office2007で、VS2008からExcelに書き込みを行っていますが、判らないことがあります。

    何方かご存じの方、ご教授お願いします。

    1)Alignment制御

    1. sheet.Range("B2").Value = "今日は"
      sheet.Range("B2").HorizontalAlignment = HorizontalAlignment.Center 結果:エクセルの配置パネルは"文字列を左に揃える"にマークされる
    2. sheet.Range("B2").HorizontalAlignment = HorizontalAlignment.Right  結果:エクセルの配置パネルはノーマーク
    3. sheet.Range("B2").HorizontalAlignment = HorizontalAlignment.Left      結果:Range クラスの HorizontalAlignment プロパティを設定できません。というエラー発生

    文法が間違っているのでしょうか?

    2)任意のセルに罫線を付けたいのですが、ヒントが全く掴めません。(エクセルMacroを使用しないで、VSからの制御を行いたいのです。)

    よろしくお願いします。

    2010年9月28日 2:26

回答

すべての返信

  • (1)について

    HorizontalAlignment 列挙体は Windows Forms または WPF のものを使用していませんか?型が違うのだと思います。下記URLが参考になるかもしれません。

    http://www.red.oit-net.jp/tatsuya/vb/Excel.htm#HorizontalAlignment

    (2)について

    罫線は、Range クラスのBordersプロパティを使って設定できます。C#のサンプルですが、下記URLが参考になると思います。

    http://www.din.or.jp/~graywing/csharp_excel.html#CELL_LINE_EDGETOP

     


    なかむら(http://d.hatena.ne.jp/griefworker)
    2010年9月28日 3:11
  • なかむら様

    ご教授ありがとうございます。

    1. sheet.Cells(3, 1).HorizontalAlignment = Excel.Constants.xlCenter         で解決できました。
    2. sheet.Range("B15").Borders.LineStyle = Excel.XlLineStyle.xlContinuous     で4辺の罫線は引けました。

    が、教えて頂いた参考WebSiteでは

    // 上端横線(xlEdgeTop)を二重線(xlDouble)で引く
    oRange.Borders.get_Item(Excel.XlBordersIndex.xlEdgeTop).LineStyle = Excel.XlLineStyle.xlDouble;

    でget_Item(Excel.XlBordersIndex.xlEdgeTop)で、罫線を引く辺を指定しています。

    VS2008で、get_Itemの代わりになるコマンドをご存じでしたら教えて頂けたら幸いです。

    Bordersのオプションで調べてみましたが、私の力では見つけることができませんでした。

    厚かましいお願いですが、よろしくお願いします。

    2010年9月28日 4:14
  • なかむら様

    お世話になります。

    前回の再質問は無視してください。

    前回のレスの後、再度挑戦したら、以下のコマンドが完成しました。

    sheet.Range("B15").Borders(Excel.XlBordersIndex.xlEdgeBottom).LineStyle = Excel.XlLineStyle.xlContinuous     ’底の罫線

    お陰さまで、私の問い合わせは無事に解決できました。

    お手数をおかけしました。     ありがとうございました。

    2010年9月28日 4:35