プロが教えるわが家の防犯対策術!

エクセルのvbaで、指定した範囲を出力したいです。
画像の通り、黄色のセルC4からC11の範囲を、
ボタンを押したらhtmlファイルで出力するマクロを作りたいのですが上手くいきません。

以下のような文を書いたのですが、エラーになってしまいます。
.WriteLine Worksheets("Sheet1").Range(C4:C11).value

vbaは見よう見まねでしか書いたことがなくて、超初心者です。
ネットで見ても長文過ぎて分からず、一文でできないものでしょうか?
長文でしかできない場合は、vbaのvの文字も分からない初心者向けに解説込みで書いていただけると大変嬉しいです。

宜しくお願いします。

「エクセルのvbaで、指定した範囲を出力し」の質問画像

A 回答 (5件)

No.4です。



質問文からそのままコピペした際に確認不足でした。

>以下のような文を書いたのですが、エラーになってしまいます。
>.WriteLine Worksheets("Sheet1").Range(C4:C11).value

これって

.WriteLine Worksheets("Sheet1").Range("C4:C11").value

こうですよね?(セル範囲の前後を " " で囲う)
なので

No.4は

.WriteLine Join(Application.Transpose(Worksheets("Sheet1").Range("C4:C11").Value), vbCrLf)

こうですかね。
    • good
    • 1
この回答へのお礼

ありがとうのざいます!
ダブルコーテーションつけても別のエラーが出てしまっていたのですが、別の問題でした!
解決できました!
ありがとうございます!
短文で助かります!

他の方のやり方も試したのちに改めてお礼させていだきます!

取り急ぎ御礼まで

お礼日時:2018/06/20 17:35

No.3です。



範囲が固定なら

.WriteLine Join(Application.Transpose(Worksheets("Sheet1").Range(C4:C11).Value), vbCrLf)

とか?
    • good
    • 0
この回答へのお礼

ありがとうございます!
試したところc4:c11の:のところにカーソルがいき、コンパイルエラーがでてしまいました。。
修正候補区切り記号または、と出ました

お礼日時:2018/06/20 17:11

Sub megu()


Dim r As Range

Set r = Range(Range("C1").End(xlDown), Cells(Rows.Count, "C").End(xlUp))

MsgBox Join(Application.Transpose(r.Value), vbCrLf)

Set r = Nothing

End Sub

------------

MsgBox の変わりに .WriteLineかな?
    • good
    • 0

こんにちは。



私は、解説込みのご希望には添えません。
段階的なものがあって、例えば、英語でも、中学生から高校生、大学生とレベルの違いは、単に文法だけとは限りません。概して、ご質問のようなアプリケーションの外に出すようなものは、レベルが高いのです。

'//標準モジュールが良い

Sub MakeOutHtml()
Dim i As Long 'カウンター変数
Dim fn As String '出力ファイル名
Dim fNo As Integer '出力ファイル番号
Dim flg As Boolean 'フラグ・<html>の始まりのサイン
Dim buf As String 'バッファ
'C列からの書き出し '位置は、C列ならどこでも良いです。
'1行目から
For i = 1 To Cells(Rows.Count, "C").End(xlUp).Row
 '<html の文字があったら収録
 If LCase(Cells(i, "C").Value) = "<html*" And flg = False Then
  flg = True 'スイッチオン
  buf = buf & vbCrLf & Cells(i, "C").Value
 ElseIf LCase(Cells(i, "C").Value) = "</html*" Then
  buf = buf & vbCrLf & Cells(i, "C").Value
  flg = False
  Exit For
 ElseIf flg Then
  buf = buf & vbCrLf & "<br>" & Cells(i, "C").Value
 End If
Next i
fn = Format$(Now(), "yymmdd_hhmm") & ".html" '日付と時間の出力
fNo = FreeFile()
Open fn For Output As #fNo
Print #fNo, buf
Close #fNo
Beep
End Sub
    • good
    • 1
この回答へのお礼

ありがとうございました!

お礼日時:2018/06/20 23:11

市役所などの自治体が行っているパソコン相談で相談したほうが良いと思います。

    • good
    • 0
この回答へのお礼

ありがとうございます。
時間も惜しかったのでこちらで質問させていただいた次第です

お礼日時:2018/06/20 23:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!