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

Excel 2007 を使っています。
Excelでテーブルを作成して、抽出したり並べ替えたりしたものから、
webで公開したい範囲を選択してhtml形式で保存しました。
(「名前を付けて保存」の「その他の形式」から「Webページ」選択)
ブラウザで表示された部分は、Excelで見えるとおりだったのですが、
htmlソースを確認したら、不可視にした部分まで含まれていました。
Excelで不可視にした部分をhtmlソースに含めないようにする方法はありますでしょうか。
ご存知の方、教えてください。

質問者からの補足コメント

  • 補足です。
    > 次に、ホームタブ-検索と選択-条件を選択してジャンプ-可視セル-OK
    この方法を事前に試して失敗した理由がもう一つありました。
    別のシートに貼り付ける前にWeb発行しようとしたら、
    選択部分だけの発行はできず、シートの全てしか選択できなかったので、
    無理なのかなぁ、と諦めてました。

    No.2の回答に寄せられた補足コメントです。 補足日時:2016/05/05 04:33
  • へこむわー

    > html形式で保存したファイルをExcelで開くと、フィルタ機能が残ったまま元に戻って、
    > 非表示ファイルも表示することができますし

    私の勘違いでした。すみません。m(_ _)m

    No.3の回答に寄せられた補足コメントです。 補足日時:2016/05/06 18:23
  • HAPPY

    テーブルのままで可能かどうか分かりませんが、
    非表示行を削除するマクロを作って削除してから保存すれば良さそうです。
    試した手順は次の通りです。
    1.いったんhtml形式で保存する。
    2.作成したhtmlファイルをExcelで開く。
    3.非表示行を削除するマクロ(Webで検索すれば複数見つかる)で非表示部分を消す。
    4.残った部分をhtml形式で保存する。

    3.の終了まで少し時間がかかりましたが、
    テキスト整形ソフトを使うよう準備する手間を省ける分、早いかもしれません。

      補足日時:2016/05/06 18:58

このQ&Aに関連する最新のQ&A

A 回答 (3件)

こんにちは。



試してみました。いや、知らなかったですね。テーブルで作って、ソースには残されているとは……。

>Excelで不可視にした部分をhtmlソースに含めないようにする方法はありますでしょうか。

これ自体は、簡単でしょう?
フィルター状態にしておいて、テーブルをあらかじめ選択しておきます。
次に、ホームタブ-検索と選択-条件を選択してジャンプ-可視セル-OK

後は、別のシートに貼り付けて、もう一度テーブルにして、それから、Web を発行すれば、不可視にしていたものは残っていません。

意味として勘違いしていたら、ごめんなさい。
この回答への補足あり
    • good
    • 0
この回答へのお礼

回答、ありがとうございます。

> フィルター状態にしておいて、テーブルをあらかじめ選択しておきます。
(この後に「コピー」)
> 次に、ホームタブ-検索と選択-条件を選択してジャンプ-可視セル-OK
> 後は、別のシートに貼り付けて

これは質問する前に試して、クイックアクセスツールバーにまで登録したのですが、
上手くいきませんでした。
先ほど試したら、問題なく必要な部分がコピーできました。
どうして事前に試した時にうまくいかなかったのか、確認したら、
私はテーブル以外の部分を含めてコピーしてました。
この場合、フィルターが解除されてコピーされるようです。

また、もう一つ問題があって、列の幅はコピーできないので、
予め、コピー先の列の幅をコピー元と同じにしておく必要がありそうです。
上記の失敗した件も、テーブル以外の部分を予め別にコピーしておいて、
テーブルの部分だけを後からWindFallerさんの方法でコピーすれば、
目的の結果が得られるのかもしれません。
この方法しかないのかもしれませんね。

ちなみに、諦めていた私は対処方法として、次のソフトを使い、
「複数行置換」
http://www.inasoft.org/webhelp/mlrep/HLP000001.h …
ソースの次の部分を削除しました。
<tr height=0 style='display:none'>から次の</tr>まで。
置換前文字列:<tr height=0 style='display:none'>(.*?)</tr>
置換後文字列:空欄

質問後にhtmlファイルを縮小する必要も生じたので、
「Excelで作ったhtmlファイルのサイズを縮小したい」
https://oshiete.goo.ne.jp/qa/9263099.html
結局は「複数行置換」を使うことになりそうです。

ただ、
テーブル以外の部分を含めてコピーした場合に、
非表示にした部分をhtmlソースに含めないようにする方法があれば知りたいので、
この質問はしばらく継続させていただきます。

回答、ありがとうございました。

お礼日時:2016/05/05 04:19

#1さんの「Excelで作ったhtmlファイルのサイズを縮小したい」のレスを読んで、そうだったなって思うことと、もう一つ、以下のコードをみていて、xmlとほとんど変わらないというか、Excelでは、スタイルシートを使ってxml を出力するわけですよね。



しばらくやっていないので、すっかり忘れてしまっていました。

<table class="type01">
 <tr>
  <th scope="row">項目名</th>
  <td>品名</td>
 </tr>
 <tr>
  <th scope="row">項目A</th>
  <td>Apple</td>
 </tr>
 <tr>
  <th scope="row">項目B</th>
  <td>Banana</td>
 </tr>
 <tr>
  <th scope="row">項目C</th>
  <td>Grape</td>
 </tr>
</table>

これ自体の表は、Excelとしてのオブジェクトは違いますが、構造的には、変換できるとは思いますし、これ自体の表もテキストとして、マクロで簡単に出力してしまいますね。要するに、取得する時と逆のことをすればよいのですから。何か、あまり難しく考えすぎたような気がしてならないのですが……。
この回答への補足あり
    • good
    • 0
この回答へのお礼

Excelのデータをhtmlファイルを使って共有しようとしたら非表示ファイルを削除してはいけないのでしょうね。
Webで公にするようなものではないのだろうなぁと思いました。
html形式で保存したファイルをExcelで開くと、フィルタ機能が残ったまま元に戻って、
非表示ファイルも表示することができますし。

> Excelでは、スタイルシートを使ってxml を出力するわけですよね
知りませんでした。
もしかしたら、これがヒントになるかもしれません。
すぐには試せませんが、頭に留めておきます。
ありがとうございました。

お礼日時:2016/05/06 17:25

ありません。

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

回答、ありがとうございました。

お礼日時:2016/05/03 16:20

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルのマクロでアクティブシートをhtml保存

エクセルのマクロを使って、アクティブシートのみをhtml形式に保存したいと考えています。

 ActiveSheet.SaveAs Filename:="ファイルパス", FileFormat:=xlHtml 

でhtmlに保存するところまではできたのですが、すべてのシートが出力されてしまいます。
アクティブなシート、あるいは特定のシートのみをhtml形式で保存する方法があればご教示ください。

Aベストアンサー

こんにちは。

失礼しました。こちらで。

'html作成のシート名をコピー
ThisWorkbook.Worksheets("sheet1").Copy
Workbooks(Workbooks.Count).SaveAs Filename:="ファイルパス", FileFormat:=xlHtml

QHTMLからフォルダを開きたい

いつも大変お世話になります<(_ _)>

Webサーバー上にあるWebページ(HTML)の中に、ローカルPCのフォルダを開くリンクを付けたいのですが、
<a href="file://c:\windows">OPEN</a>
としても、何も反応しません。

いろいろ調べたのですが、上記の方法しか見あたりません。

なお、ブラウザのアドレス欄に file://c:\windows と入力すると、フォルダの内容が表示されます。
※Firefoxだと、ファイルの一覧になりますが・・・

何か環境によって挙動が異なるのでしょうか?
それとも、セキュリティ上の観点から最近じゃ出来なくなっているのでしょうか?

是非ともお助け下さい。宜しくお願い致します。

Aベストアンサー

file:///C:/windows/
/は三つでは・・・
 IEの場合はエクスプローラ(ファイルマネージャ)が開くような・・・
 IEはファイルマネージャーと一体のブラウザなので・・・

★実は、ローカルサーバーが必要です。
 apacheでも何でも良いので、WEBデータの入っているフォルダーを
<VIRTUALHOST 127.0.0.1>
C:\Document and settings\my document\web
 とかに指定して、Windowsのhostsファイルで、適当なサーバー名を指定しておきます。
myLocalhost 127.0.0.1
とか・・・

 そうすると
http://myLoclahost/
 で開けます。

 

Q非表示の列をすべて削除するマクロ

こんにちは。

「非表示の行をすべて(一気に)削除するマクロ」は
Googleで検索して見つけることができました。

行だけではなく、同時に非表示の列も一気に削除してしまいたいのですが
マクロ初心者の為、いろいろいじっていてもエラーになってしまいます。

どなたか、ご教示頂けますでしょうか。
よろしくお願いいたします。

Aベストアンサー

非表示の行および列を削除するマクロの一例です。

Sub test()
Dim z As Long
With ActiveSheet
z = .Range("A1").SpecialCells(xlLastCell).Row
For i = z To 1 Step -1
If .Rows(i).Hidden Then .Rows(i).Delete
Next i
For n = Columns.Count To 1 Step -1
If .Columns(n).Hidden Then .Columns(n).Delete
Next n
End With
End Sub

QExcel VBAを使ってHTML生成をしたい

エクセルにデータを入力し、下記のようなhtmlファイルに各々のセルに対応した数値が代入されたものを生成したいと考えています。

<a href="【A1】.html">【A2】</a><br/>
<a href="【B1】.html">【B2】</a><br/>
<a href="【C1】.html">【C2】</a><br/>
<a href="【D1】.html">【D2】</a><br/>
<a href="【E1】.html">【E2】</a><br/>

VBAを使ってこのようなことは可能でしょうか?
また、そのほかどのような方法が考えられますでしょうか?
なにとぞよろしくお願いいたします。

Aベストアンサー

VBAでもできるし、式だけでもできますが。

VBAなら、sheets("シート名").cells(1,1).valueがA1の値だから、
open "作成するhtmlファイル" for output as #1
print #1,"<a href=""" & sheets("シート名").cells(1,1).value & ".html"">" & sheets("シート名").cells(1,2).value & "</a><br/>"
・・・
close
といった具合ですし、
式だけで作ろうと思えば、
別のシートに、
="<a href=""&シート名!A1&".html"">"&シート名!A2"</a><br/>"
・・・
と式を入れておいて、そのシートだけ保存すればいい。
(新しいマクロを記録しておくと保存するボタンも作れますし。)

個数が可変かどうか?(というか上限が決めれるかどうか)
で使い分けたらいいと思います。

QExcel ハイパーリンクのURLを別のセルに表示したい。

Excel ハイパーリンクのURLを別のセルに表示したい。

例えば、A1セルに「あいうえお」と入力され、かつハイパーリンクで、
「http://www.aiueo.com」というURLがリンクされているとします。
この、「http://www.aiueo.com」を B1セルに表示させたいです。

なにか良い関数やフリーソフト等はありませんでしょうか??
(ACCESSの場合は、簡単なクエリーのみ利用できるレベルです。)

よろしくお願いします。

Aベストアンサー

こちらで。
http://oshiete.goo.ne.jp/qa/2356920.html


人気Q&Aランキング