• ベストアンサー

エクセルファイルの作成/保存

VB初心者ですみません。 VBでエクセルファイルを新規で開き、ビットマップファイルを貼り付けて名前をつけて保存するプログラムを作っていますが、全くわかりません。 新規で開く方法、ビットマップファイルを貼り付ける方法、名前を付けて保存して閉じるする方法を教えてください。 また、文字のフォントの変更方法、罫線の書き方も教えてください。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.5

多分、エラーがでる原因は、 xlDiagonalDownがエクセルでの定数であって VBでは未定義なためだと思います。 こういう、エクセルで定義されている定数を調べるには、 エクセルVBEでイミディエイトウインドウを開いて ? xlDiagonalDown とかやると表示されます。 VBの方で定数を定義してやるには、 Const xlEdgeBottom As Integer = 9 Const xlInsideHorizontal As Integer = 12 Const xlContinuous As Integer = 1 などと書きます。 直接数字を書いても良いですが、 マクロ側からコピーしてきて使う場合にはそのまま使えるので便利だし、可読性が増します。 ちなみに、xlDiagonalDown は、斜め罫線だと思います。xlNone は罫線を消す指定です。 それに、いったんselectしなくても、直接できますよ。 下線を引くには objExcel.Range("B22:K26").Borders(xlEdgeBottom).LineStyle = xlContinuous 'xlEdgeBottom = 9, xlContinuous =1 objExcel.Range("B22:K26").Borders(xlInsideHorizontal).LineStyle = xlContinuous 'xlInsideHorizontal =12 としてやればいいです。

itsupy
質問者

お礼

ありがとうございます! できました。(0^-^0)

その他の回答 (4)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

罫線の書き方とかは、マクロの記録を参考にするといいかもしれません。 それからヘルプを引くといいと思います。

itsupy
質問者

補足

マクロを記録し、それに習ってやってみましたが、最後の行でエラーが出ます。 Private Sub Command1_Click() Set objExcel = CreateObject("Excel.Application") 'エクセルオブジェクトを作成します。 objExcel.Visible = False 'エクセルを非表示で objExcel.Workbooks.Add '新規に作る objExcel.Sheets("Sheet1").Range("c23").Select objExcel.ActiveSheet.Pictures.Insert (App.Path & "\パット.bmp") objExcel.Sheets("Sheet1").Range("f24").Select objExcel.ActiveSheet.Pictures.Insert (App.Path & "\仕切1.bmp") objExcel.Sheets("Sheet1").Range("i24").Select objExcel.ActiveSheet.Pictures.Insert (App.Path & "\仕切2.bmp") objExcel.Sheets("Sheet1").Range("B22:k26").Select objExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone B22からK26までに下線を引こうとしています。 さっぱりわかりません。助けてください。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

他の、OKWebの書き込み見て、思ったんですが VBで表示してるものをエクセルに渡すということで クリップボード経由を考えたんですけど、 ファイル名がわかっているのだったら、直接 objExcel.ActiveSheet.Pictures.insert ("C:\sample.bmp") で、エクセルのシートに貼り付けられます。 (#1のペーストの部分を上ので置き換えられる)

itsupy
質問者

補足

いろいろとありがとうございます。 でも、、どうしても罫線のひきかたがわかりませんっ! ヘルプもいろいろ見てみたのですが・・・

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

イメージをクリップボードへコピーするには、 PictureBox1がイメージを保持している状態で Clipboard.SetDataObject(PictureBox1.Image) すればいいです。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

Set objExcel = CreateObject("Excel.Application") 'エクセルオブジェクトを作成します。 objExcel.Visible = False 'エクセルを非表示で objExcel.Workbooks.Add '新規に作る objExcel.Sheets("Sheet1").Select objExcel.ActiveSheet.Paste 'クリップボードの絵を貼り付ける、クリップボードへは、VBのImageオブジェクトを使えばいいね。 objExcel.ActiveWorkbook.Close SaveChanges:=True, Filename:="C:\bookPaste.xls" '名前を付けて保存 フォントの変更方法とか罫線の書き方は、 マクロの記録でも使って、ヘルプでも見て下さい

itsupy
質問者

補足

Imageをコピーするにはどうすればいいんですか・・??

関連するQ&A