お世話になります。
エクセルのマクロでワークシートをprn形式で保存するために
下段のマクロを作成しました。
実行すると目的通り「B5」セルの値をファイル名にして、
prn形式で保存するところまでは問題ありません。
ですがアクティブシートのシート名が
「B5」セルの値に変わってしまいます。
アクティブシートの名前はそのままで、
保存するファイル名だけ「B5」セルの値を
割り当てたいと思っております。
すいませんが以下のコードの
間違っているところを教えて下さい。
追記)
単純な処理なので前述の処理を行う
新規のコードを書いて頂いてもOKです。
原因不明で不思議には感じているですが、、。
※出力は「.prn」ですが、拡張子は「.html」です。
※EXCELのバージョンは2010です
※F1ヘルプの呼び出しが壊れてしまいヘルプが閲覧できません
↓ このサイトを参考にしました
http://www.officepro.jp/excelvba/book_new/index9 …
すいませんがよろしくお願いします。
Sub B5LSave_06()
Range("B5").Select
Dim book1 As Workbook
Dim i As String
Set book1 = ActiveWorkbook
i = Range("B5").Value
book1.SaveAs Filename:="C:\A\" & i & ".html", _
FileFormat:=xlTextPrinter
End Sub
No.3ベストアンサー
- 回答日時:
これって 1つのシートだけを CSV に出力するのと同様の処理でよろしいのでは?
Sub Sample()
Dim book1 As Workbook
Dim i As String
ActiveSheet.Copy
Set book1 = ActiveWorkbook
i = Range("B5").Value
book1.SaveAs Filename:="C:\A\" & i & ".html", _
FileFormat:=xlTextPrinter
book1.Close False
End Sub
ご解答ありがとうございます
>
1つのシートだけを CSV に出力するのと同様の処理でよろしいのでは?
↓
その通りでした!
アクティブのワークシートだけ
出力すればいいんですね。
アクティブシートだけが必要なのですが、
横着していて、全く気が付きませんでした。
今回はご解答ありがとうございます。
機会がありましたらまたお願いします。
No.4
- 回答日時:
こんばんは。
>こういうツール(ソフト)って、Visual Basicでも作れますか?
VB.Net ということでしょうか。もちろんですね。
資料の絶対数が違います。今、VBAは、暗中模索でやっているだけですから。ただし、VB.Net はあまりポピュラーではなさそうで、MS では、C#おすすめのようです。世間(雜誌)では、Python が頻繁に宣伝していますね。
一応、私は、VB.Net の公開講座で何十時間と学校に行って、覚えたつもりでいたけれども、それから、あっという間に、10年が経ってしまいました。私のやっているのは、VBAでこれだけできる、ということをやっているに過ぎません。無駄に、10年を過ごしてしまった感が強いです。
VBAの最大の弱点は、意外と知られていないのは、VBA自体のメモリの使用量の制限なのです。VB.Net というよりも、VSは豊富なツールが多いわけです。本音の所は、本格的には「せざるを得ない」というところなのです。いえ、現行でも、Excel等のVBAは、そのまま、フリーでVSに移行できる(よう)です。私のほうは、VSTOをインストールしたままになっていますが。
ご解答ありがとうございます。
参考になりました、
プログラミングついては、
機会をみつけてあらためて
たずねます。
いろいろ教えて頂きありがとうございました。
PS
今回はNo.3さんにベストアンサーを譲りますね。
機会がありましたら、またいろいろ教えて下さい。
いつもご解答ありがとうございます。
No.2
- 回答日時:
こんにちは。
>webやブログに貼り付ける文字リンクや表を
>エクセル上で作成して出力しています。
>テキストで開いて貼り付けています。
そういうことでしたか!
それは、あまりにも違いすぎるような気がします。
私は、勢いで貼り付けることが怖いために、全部をマクロ化することはしませんが、可能なことは可能です。
簡単な例を示してみましょうか?
単なる可能性だけを示唆するもので、本格的なものではありません。
今の私の力は、このぐらいだということをお見せしているだけです。
(かなり劣化しています)
以下は、失敗する可能性は、補正処理していないので、10の内1回程度です。昔の、闇雲の時代から、やっと、エラー処理にたいする措置ができるようになったという気がしています。仕事でお使いでしょうから、不謹慎かもしれませんが、こういうのは、面白いですよね。遊び感覚になってしまっています。
p.s.どんなに難しい質問でも、気に入った質問は、解答が出るまで、私は考え続ける人です。ですが、本格的知識がないのと、最近、この手のものは、Python に移行しつつあるので、余計に不勉強が祟っています。これじゃあいけないという事ばりです。
'//教えて!gooの検索プログラム//
'//
Sub OshieteGoo_Search()
Dim sTxt As Variant
Dim myURL As String
Dim objIE As Object
Dim i As Long
On Error GoTo ErrHandler
sTxt = Application.InputBox("検索語を入れてください", "検索ワード", "EXCEL", Type:=2)
If VarType(sTxt) = vbBoolean Or sTxt = "" Then Exit Sub
myURL = "http://oshiete.goo.ne.jp/search_goo/result/?MT=" & sTxt & "&code=utf8&mt_opt=a&qatype=qa&st=all&sr=date&tf=m1"
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.Navigate2 myURL
With objIE
Do Until Not .Busy And .readyState = 4: DoEvents: Loop
Set objIE = objIE
End With
'On Error Resume Next
'VBAコーディングルール反則
Dim BBtns
Dim btn
With objIE
Do Until Not .Busy And .readyState = 4: DoEvents: Loop
Set BBtns = .document.getElementsByTagName("a") '(38)
For i = 36 To 40
If BBtns(i).InnerText Like "回答受付中" Then
Set btn = BBtns(i)
If Not btn Is Nothing Then
btn.Click
Exit For
End If
End If
Next
End With
ErrHandler:
If Err.Number > 0 Then MsgBox Err.Description & " " ' & Erl
End Sub
ご解答ありがとうございます。
いろいろ考えて頂きありがとうございます。
今回はNo3さんの解答で解決しましたが
機会があれば、またお願いします。
ワークシートだけ出力すればいいんですね。
気が付きませんでした。
No.1
- 回答日時:
あまり、自信がありません。
こういうものには、新しいスタイルになってからは、手をつけたことがなかったのですが、ソースを見比べると、昔と今では雲泥の違いがあるようですね。
この質問上にあるマクロでは、ただTextファイルの拡張子が、htmlになっているだけのものでしたから、以下は、意味的に違うのかもしれません。
Webファイルの発行を試しに作ってみました。出力は、UTF-8にしました。
>アクティブシートの名前はそのままで、
>保存するファイル名だけ「B5」セルの値を
>保存の時にシート名が変わってしまう
といっても、この出力では、シート構造を維持しているわけでもありません。
シート構造を維持する方法は、別にあるはずです。(確かめてはいません)
'//
Sub HtmlPublish()
Dim myPath As String
Dim fName As String
Dim shName As String
myPath ="C:\A\"
fName = Range("B5").Value
shName = ActiveSheet.Name
With ActiveWorkbook
.WebOptions.Encoding = msoEncodingUTF8
With .PublishObjects.Add( _
xlSourceSheet, _
myPath & fName & ".html", _
shName, "", _
xlHtmlStatic, _
ThisWorkbook.Name)
.Publish (True)
.AutoRepublish = False
End With
End With
End Sub
ご解答ありがとうございます
この質問上にあるマクロでは、ただTextファイルの拡張子が、htmlになっているだけのものでしたから、以下は、意味的に違うのかもしれません。
↓
おっしゃる通りです。
webやブログに貼り付ける文字リンクや表を
エクセル上で作成して出力しています。
例えば、D10(文字)、E10(URL)を入力して
「&」を使って連結するようにして
文字リンクを作成しています。
その後、以下のマクロで出力したものを
テキストで開いて貼り付けています。
※たくさんあるし、表もあるのでD10、E10だけではありませんが。
なので、拡張子をhtmlにしているのは、
動作確認する時に見やすいからだけで、
実際はテキストファイルで開いたものをコピーして、
Web上のhtmlのエリアに貼り付けています。
なので、このやり方ですと、
テキストで開いた時にフォントのサイズやセルの幅、etc.が残るので、
全選択(Ctlr+A)が利用できない、etc.があり、
求めていたものとニュアンスが違います。
質問に書いた
『※出力は「.prn」ですが、拡張子は「.html」です。』
というのはそういう意味です。
ですが、こんな複雑な方法になるとは、
想像してなかったので、名前の付け方を
以下のようにして、B5に連番だけ入れることにしました。
これだけでだいぶマシですから。
book1.SaveAs Filename:="C:\A" & "ファイル名-" & i & ".html", _
いつもご解答ありがとうございます。
理屈がわかっただけでも満足です。今回はご解答ありがとうございました。
追記
しばらく質問は開けておきますので、もし何かありましたら
教えて頂ければありがたいです。
※といっても、この出力では、シート構造を維持しているわけでもありません。
↓
シート構造は維持する必要がありません。
元のワークブックはツールとして使うだけで保存しません。
出力するテキストファイルだけが必要ですから。
出力するファイル形式はprnでないとだめです。
csvのようにコンマが入ると使えませんし、
今回のようにセルの幅やフォントサイズ、etc.が残ると
意味がありませんので。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/03/02 08:40
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/11 13:29
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/06/01 14:45
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/08 09:08
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
ExcelをCSV書き出す場合のシート名を変更したい
Visual Basic(VBA)
-
名前をつけて保存した後、元のファイルに戻るには
その他(コンピューター・テクノロジー)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
-
4
EXCEL VBA で指定した範囲に入力があるかどうか?
Visual Basic(VBA)
-
5
VBAでの結合セルのコピー&ペースト
Excel(エクセル)
-
6
EXCELでワークシートを開いたらマクロを自動実行したい
Excel(エクセル)
-
7
excelVBA 項目ごとに連番をふりたい
Excel(エクセル)
-
8
Excel 名前を付けて保存のVBA
その他(Microsoft Office)
-
9
SaveAsの保存先について
Visual Basic(VBA)
-
10
UserForm1.Showでエラーになります。
工学
-
11
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
12
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
13
【VBA】特定のセルをprnで保存したい
Excel(エクセル)
-
14
CSVファイルの時刻の形式について
Excel(エクセル)
-
15
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
16
【VBA】マクロの入ったファイルと同じフォルダに,出力したファイルを保存するコードについて
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
至急!尿検査前日にオナニーし...
-
白血球が多いとどんな心配があ...
-
腕を見たら黄色くなってる部分...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
精子が黄色?
-
勃起する時って痛いんですか? ...
-
尿検査前日に自慰行為した時の...
-
尿検査の前日は自慰控えたほう...
-
口の中に黒い血の塊
-
これって喉仏ですか? 私は女性...
-
精子に血が・・・
-
中出しをするとお腹が痛い・・・。
-
納豆食べた後の尿の納豆臭は何故?
-
甲状腺腫れ
-
EXCELで式からグラフを描くには?
-
EXCELで条件付き書式で空白セル...
-
筋トレするとチンコが縮んじゃ...
-
爪が紫色?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
至急!尿検査前日にオナニーし...
-
首吊りどこ締めるの
-
尿検査の前日は自慰控えたほう...
-
尿検査前日に自慰行為した時の...
-
検便についてです。 便は取れた...
-
白血球が多いとどんな心配があ...
-
中出しをするとお腹が痛い・・・。
-
射精をして1週間以内に尿検査を...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
変な話しになります。尿検査で...
-
これって喉仏ですか? 私は女性...
-
EXCELで条件付き書式で空白セル...
-
男です。昨日の午後3時くらいに...
-
今朝、毎朝の習慣でオナニーし...
-
納豆食べた後の尿の納豆臭は何故?
-
1日前の検尿
-
値が入っているときだけ計算結...
-
精子が黄色?
おすすめ情報
こういうツール(ソフト)って、Visual Basicでも作れますか?
こんな感じの簡単なソフトを作成したいので、
プログラミングの勉強をしようと思っています。
VBAに慣れているので、Visual Basicを勉強しようと思っています。