Gizport
1 回答
0
Share (facebook)
369
view
全般

エクセルで一つのセルに対して、一つのhtmlファイルにする方法? 私...

エクセルで一つのセルに対して、一つのhtmlファイルにする方法? 私の場合、1つのセルに対して1つのテキストではなくhtmlファイルにする方法なのですが、セルの中には<html>~</html>が入っています。

---------------------------------------------------
Open ThisWorkbook.Path & "" & s & ".txt" For Output As #1
---------------------------------------------------
これを
---------------------------------------------------
Open ThisWorkbook.Path & "" & s & ".html" For Output As #1
---------------------------------------------------

にすれば出来るかと思ったのですが、ファイルが出来ませんでした。
セルの中がテキストだと上手くいくのですがこれはどこを修正すればできるのでしょうか?
また、ファイル名はセルに入力されている左から10文字分となっていますがこれでは少し困ります。

仮に
A1にファイル名(index.html) B1にhtmlの中身(<html>~</html>)
A2にファイル名(tesuto1.html) B2にhtmlの中身(<html>~</html>)
A3にファイル名(tesuto2.html) B3にhtmlの中身(<html>~</html>)
以下同様に続く

があったとします。

マクロを実行するとAのセルのファイル名でhtmlが作成したいと思います。

---------------------------------------------------
Sub テキストコピー()
Dim c As Range
Dim s As String

On Error Resume Next
For Each c In Selection
If c.Value <> "" Then
s = Left(c.Value, 10)
If InStr(s, vbLf) > 0 Then
s = Left(s, InStr(s, vbLf) - 1)
End If
Open ThisWorkbook.Path & "" & s & ".txt" For Output As #1
Print #1, Replace(c.Value, vbLf, vbCrLf)
Close #1
If Err.Number Then
Err.Clear
MsgBox c.Address & c.Value
Exit Sub
End If
End If
Next
End Sub
---------------------------------------------------


すいませんが、このマクロどこを直せばいいか教えて下さい。
Yahoo!知恵袋 5982日前
コメントする
お気に入り
1
質問者が選んだベストソリューション
下記で試してください。
>A1にファイル名(index.html) B1にhtmlの中身(<html>~</html>)
のシートをアクティブにして実行して下さい。データはA1より連続であるものと仮定しています。

Sub htmlコピー()
Dim c As Range
Dim s As String, TmpS As String
Dim myF As Integer

On Error Resume Next
For Each c In Range("A1").CurrentRegion.Resize(, 1)
If c.Value <> "" Then

s = Trim(c.Value)
TmpS = Right(s, Len(s) - InStrRev(s, ".") + 1)
If TmpS <> ".htm" And TmpS <> ".html" Then
s = s & ".html"
End If

myF = FreeFile
Open ThisWorkbook.Path & "" & s For Output As #myF
Print #myF, Replace(c.Offset(, 1).Value, vbLf, vbCrLf)
Close #myF

If Err.Number Then
Err.Clear
MsgBox c.Address & c.Value
Exit Sub
End If
End If
Next
End Sub

A列がhtmlで終わっていないときの処理を追加しました。
Yahoo!知恵袋 5982日前
シェア
 
コメントする
 

参考になったと評価
  このQ&Aは参考になりましたか?

Share (facebook)
その他の解決方法を知っていますか?
回答する
全般
100
Views
質問者が納得現在使用できないアドオンを使用する方法 Aの方法・・・バージョン3.5.7にダウングレードして使用する (3.6に対応されるまで3.5.7を使用し続けることになります) 1、旧バージョンのダウンロード http://mozilla.jp/firefox/download/older/#sec-firefox35 上記からダウンロードした Firefox Setup 3.5.7.exe をダブルクリックしインストール します。(結果3.6が3.5.7に上書きされますので3.6は何もせず、そのままで結構です...
5207日前view100
全般
100
Views
質問者が納得下記で試してください。 >A1にファイル名(index.html) B1にhtmlの中身(<html>~</html>) のシートをアクティブにして実行して下さい。データはA1より連続であるものと仮定しています。 Sub htmlコピー() Dim c As Range Dim s As String, TmpS As String Dim myF As Integer On Error Resume Next For Each c In Range("A1...
5982日前view100
全般
79
Views
質問者が納得可能性として2つ 1.IMEがおかしい・・・「RealonePlayerが起動されたので~」とありましたので、IMEの破損が一番怪しいです。この場合はOfficeを再インストールします。 2.キーボードの不具合・・・デスクトップPCならキーボードを変えてみる。ノートなら、[マイコンピュータ]を右クリックし、「管理」をクリック。出てきた画面で「デバイスマネージャ」をクリックすると右側画面に「キーボード」という項目がありますので、左横の+をクリックし、-にします。ここに!などのマークはついていませんか?付い...
6067日前view79