エクセルをHTML化するときに1行目に空白が入るのですが・・

このQ&Aのポイント
  • エクセルをHTML化すると、1行目に空白が入る問題について教えてください。
  • マクロを使用してエクセル内のシートをHTML化していますが、必ず1行目に大きい空白が入ってしまいます。
  • マクロの範囲内で上部の空白の大きさをコントロールする方法はありますか?
回答を見る
  • ベストアンサー

エクセルをHTML化するときに1行目に空白が入るのですが・・

前に同じ内容でHTMLの左寄せの話を投稿した者です。 今度は1行目の空白について教えてください。 【経緯は前回と同じです】 会社のみんなが、手軽に更新履歴を書き込めるように、マクロにてエクセル内のあるシートをHTML化しています。 上記で自動生成したファイルは実はあるHTMLファイルのフレームの部品となっています。(Top、Left、RightのうちのRightです) しかし上記のファイルはなぜか、必ず1行目にかなり大きい空白が入るため、見た目が非常に不細工です。(Rigthのフレームだけデータの始まりがかなり下のほうになる) 何とかマクロの範疇でHTML化したときに、上部の空白の大きさのコントロールはできないでしょうか?? 以下マクロのHTML化の部分です。 -------------------------------------------------- 'HTML化始め With ActiveWorkbook.PublishObjects.Add(xlSourceSheet, _ "HTMLのパス", "シート名", "" _ , xlHtmlStatic, "test0001_29648", "") .Publish (True) .AutoRepublish = False End With 'HTML化終了 --------------------------------------------------

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 修正版を、以下に書いていますが、もしも、加えることがあるなら、こちらでもかまいません。#1 と、以下とでは、TITLE 項目の出力が違います。このご質問の元のマクロは、名前付き引数ではありませんので、良く意図を理解していません。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2359404 ( http://okwave.jp/kotaeru.php3?q=2372623 )

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。Wendy02です。 >何とかマクロの範疇でHTML化したときに、上部の空白の大きさのコントロールはできないでしょうか?? 前回、私は書かなかったというか、そちらの問題だから、ご指摘はしなかったのですが、 PublishObjects.Add(xlSourceSheet, "HTMLのパス", "シート名", "" , _ xlHtmlStatic, "test0001_29648", "") わざわざ、「""」とたら、引数のいくつかは、Variant型だから、「""」 とすれば、長さ0の文字列として出てくるはずです。タイトルを入れるか入れないか、などの問題は、一度、ヘルプで確認をしたほうがよいですね。 PublishObjects.Add(SourceType, FileName, Sheet, Source, HtmlType, DivID, Title) 'サンプル出力 Sub OutHtml() Const MYTITLE As String = "test0001_29648" Dim myPath As String Dim ShName As String myPath = ThisWorkbook.Path & "\" 'パス名 ShName = ActiveSheet.Name 'シート名 With ActiveWorkbook.PublishObjects.Add( _        SourceType:=xlSourceSheet, _        Filename:=myPath & MYTITLE, _        Sheet:=ShName, _        HtmlType:=xlHtmlStatic, _        DivID:=MYTITLE)   .Publish True   .AutoRepublish = False End With End Sub

関連するQ&A

  • エクセルファイルをHTML化する際のマクロの設定

    会社のみんなが、手軽に更新履歴を書き込めるように、マクロにてエクセル内のあるシートをHTML化しています。 上記で自動生成したファイルは実はあるHTMLファイルのフレームの部品となっています。(Top、Left、RightのうちのRightです) しかし上記のファイルはなぜか、必ずフレームの中でセンタリングされてしまうため、ブラウザのウインドを大きくすると、レイアウトが狂ってしまい困ってます。(top、leftは左寄せになっています) 何とかマクロの範疇で左寄せにできないでしょうか? 以下マクロのHTML化の部分です。 -------------------------------------------------- 'HTML化始め With ActiveWorkbook.PublishObjects.Add(xlSourceSheet, _ "HTMLのパス", "シート名", "" _ , xlHtmlStatic, "test0001_29648", "") .Publish (True) .AutoRepublish = False End With 'HTML化終了 -------------------------------------------------- ちなみに・・・ 出来上がったHTMLファイルには <div id="test0001_29648" align=center x:publishsource="Excel"> という記述があり、ここを無理やりleftと変えると左詰になりました。 よろしくお願いします。

  • アイコンがエクセルのアイコンになってしまう

    エクセルシートに対して Sub test() With ActiveWorkbook.PublishObjects.Add(xlSourceSheet, "c:\test.html", ActiveSheet.Name, "", _ xlHtmlStatic, "", "") .Publish (True) .AutoRepublish = False End With End Sub をすると、HTMLファイルが作成できますがアイコンがエクセルのhtmlになってしまいます。 普通のhtmlファイルにする方法はありますか? アクセスの場合は、htmlにエクスポートすると普通のhtmlのアイコンになります。 バージョンは2003です。

  • エクセルで1行ごとに空白行を挿入し、挿入した空白行に色をつけたいです

    タイトルの通りです。 エクセル(2000)で、データはシート毎に件数が違います。 各シート毎にそれぞれ1行毎、空白行を挿入し、挿入した空白行のA列~G列までに薄いグレーの色をつけるマクロを入れたいのですが、うまくいきません。 詳しい方、教えて下さい。

  • マクロでエクセルの空白行をアクティブにしたい

    データーを入力しているシートがあり、マクロのボタンをクリックする データの空白行をアクティブになるようにしたいのです。 具体的に B列のデーターが入力されていない行をアクティブにして他のシートのデーターを張り付ける作業をしたいのですが・・よろしくお願いします。

  • Excel 空白行を上に詰めるマクロ

    関数を使用して、sheet1からsheet2に必要なデータを抜き取りました。 sheet2のセルには関数が入っています。 sheet2の抽出データには1行単位(まれに2~3行続けて)空白が発生します。 この行を削除し、かつ上に詰めて表示をしたいのですが、下記の条件で実行可能でしょうか? (例) sheet1 ⇒ sheet2   A   B   C     A  B  C 1 あ  い  う   1 あ  い  か 2        か   2 (空白行) 3 き  く   け    3 き  く  し   4 こ  さ   し   4 (空白行) ●2行目、4行目を削除し、且つ5行目以降に入力されている関数は削除したくない ●空白行削除のマクロは自動?(sheet1のデータを変更したら)で実行できるようにしたい よろしくお願いします。

  • 空白行削除

    宜しくお願いします。 1枚のファイルシートに14ブロックのデータが貼り付けてあります。各ブロック行の長さは違く、ランダムに貼り付けてあります。例えば、データ 何百行の空白 データ…と繰り返されており、約3万5千行ぐらいあります。 空白行削除で多分半分近くまで上に詰められれば良いのですが、たくさんあるのでマクロで教えていただければと思います。ネットでころがってるデータ試してみたのですが(1部) ENDLESSに実行されて、出来てるのかどうかも確認はとれてません。ちなみに自分のシートに貼ってあるデータはA列からAS列まであり数字、文字混在です。また各ブロックの終わりは集計行となっており、空白セルがまじってます。宜しくお願いします。

  • Excelで空白行を削除するマクロは?

    マウスやキーボードを使った記録式でマクロを作っています。 その中でシート上に散らばっている数十行の空白行を削除する行程が必要です。 しかし、マウスやキーに依るメニューでは「空白行の削除」と言うのが有りません。 VBEに直接打ち込まないといけない様です。 ステートメントが分かる方が要らしたら教えてください。

  • エクセルVBA

    お世話になります。 マクロの記録で、下記のようにC列を基準に表内を並べ替えるように記録されました。 Range("C4").Select Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("AQ5:AQ39" _ ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Sheet1").Sort .SetRange Range("A4:EJ39") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With ご教授いただきたい点が2点あります。 1. end行 (今のところ39行め) が毎回変わっても その位置を認識して、対応するようにしたいのですが、 どのように書き換えるとよいのでしょうか? C4は、タイトル行で、毎回固定です。 やはり、毎回最終行の次の行 (今回のケースでいうと、40行目に)に、 endと手作業で入力する方法しかないでしょうか? それしかない場合は、その記述の仕方をお願いします。 例えば、最大500行もあればいいので、途中の空白セルは、無視して 並べ替えをしてくれる記述などで教えていただけるとありがたいのですが・・・ 2. 必ず、active なシートを選択しておいてから、マクロを実行するとして、 シート名の sheet1 も可変にしたいです。 よろしくお願いします。m(_ _)m

  • 関数による空白行を除き範囲を選択するマクロ

    添付ファイルのシートが同じファイル内にある別シートの値を参照の上、元シートの入力がない場合は、if関数により空白表示する様にしてあります。(関数自体は1万行くらいまで入力すみです。) このシートの空白表示以外のセル(A6:i22)までを選択するマクロを組みたいのですが普通のrange(A6:i6).End(xlDown).Rowを使うと空白表示行を含めた関数のある最終行を選択してしまいます。 サンプルの(A6:i22)をうまく選択するマクロを教えてください。

  • エクセルのマクロ:連続動作を空白行で終了する方法

    XP・Excel2003使用のマクロ素人です。 エクセルのマクロを使って以下のマクロを作りました。 1.Sheet1の1行目に入っているデータをSheet2にコピー 2.Sheet2をコピー 3.Sheet1の1行目を削除 4.上記1~3のマクロを実行するボタンをクリック 作業を繰り返し行いたかったので、(4)の「マクロボタンをクリック」という作業もマクロに組み込んでみたのですが、空白行でも延々に実行されてしまいます。 【Sheet1に入っているデータが空白になったら作業を止める】というマクロはどのように書けばいいのでしょうか? マクロの作り方が根本的に間違っていましたら、あわせてご指摘下さい。 宜しくお願い致します。 Range("A1").Select Selection.Copy Sheets("Sheet2").Select ActiveSheet.Paste Sheets("Sheet2").Select Application.CutCopyMode = False Sheets("Sheet2").Copy After:=Sheets(3) Sheets("Sheet1").Select Rows("1:1").Select Selection.Delete Shift:=xlUp Range("A1").Select Sheets("Sheet1").Select Application.Run "Book1!Macro1"

専門家に質問してみよう