• ベストアンサー

HTMLで保存しWebで閲覧したい

はじめまして、こんにちは。 VB歴1ヶ月に満たないくらいなので、わけがわからない部分もあるかと思いますが、その際はすいません。 今作っているプログラムは ある場所をWebを通じて紹介しよう、というものです。 紹介するために 地名(comboBox1)紹介者(comboBox2)題名(TextBox1) 写真(Image1)紹介文(TextBox2) 以上の5つのコントロールを使っています。 上記のコントロールの動作は問題なく、写真貼り付けやテキスト記入、コンボボックスへの追加はできるようになっています。 Web上で閲覧の際は、 <HTML> <HEAD><TITLE>地名(comboBox1)</title></head> <body bgcolor=ffffff> <center><h2>題名(TextBox1)</h2><BR> 紹介者(comboBox2) </center> <hr> <center> <IMG src="写真(Image1)"WIDTH="50%"HEIGHT="50%"> </center> <hr> <body> 紹介文(TextBox2) </table> </body> </html> 上記のような簡単な感じでアップできるようにしようと考えています。 困っているのは、写真貼り付けや、テキストへの記入後、どうやって保存すればいいのかわからないという点です。保存時にタグごと全部書き込むというのは、何か違う気がしたので。 アドバイス・ヒント何でもいいのでご教授願います。 答えを教えてもらえれば最高ですが、上記の文章では伝わる部分も少ないと思いますし・・・^^;

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

  • ベストアンサー
  • takasebou
  • ベストアンサー率42% (61/144)
回答No.5

#1です。 LAN上でみられればいいなら、HTMLとイメージファイルさえ保存すればそれでいいと思います。 PathName = .FileName image1.Picture = LoadPicture(.FileName) とのことですが、そのファイルをHTMLのある場所と同じパスにおくか、絶対指定する必要があります。 <img src=(ファイルのパス名)> のところで、 <img src="GAZOU.jpg"> などとしていませんか? その場合、htmlと同じフォルダにイメージがないと保存されません。 c:\gazou\gazou.jpg など絶対パスにするか copy ステートメントなどを利用して、htmlと同じフォルダに画像を保存しましょう(やりたいことからすれば、こちらから出来た方がいいと思います)。 閲覧用のソフトはIEなどの普通のブラウザで大丈夫です。 あとはHTMLの規則にのっとって作ればオッケーですよ。

asutaroto
質問者

お礼

お礼が遅くなり申し訳ありませんでした。 おかげさまプログラムはかなり完成に近づいてきています。まだ少し解決しなければいけない部分がありますけど^^; 本当に色々ありがとうございました

その他の回答 (4)

  • takasebou
  • ベストアンサー率42% (61/144)
回答No.4

#1です。 Webでみたいというのが本当にインターネットでなければ、HTMLファイルをどこかのパソコンなりサーバーなりにいれて開けばそれだけでみられます。 ある程度WebっぽくというならWin2000,XPあたりならIISをたてれば、それだけでもWebサーバー風になるでしょう。 あるいはWebサーバーが別途あってというなら、FTPしてファイルをサーバーに転送できればいいのだと思うので、INETコントロール辺りをつかってアップデートすればできそうです。 ただ具体的に、VBだけでどこまで出来ればいいのかわからないので、このままだと回答は難しいですね。 HTMLファイル生成だけして、FTPは普通のフリーソフトなどでしますよ、なのか。 ボタンをおしたらサーバーまで自動的に送ってインターネット上でみられますよ。なのか。 別に本当にインターネットである必要はなくて、LAN上だけでみられればいいですよ、なのか。 それによっても答えが違ってきそうです。

asutaroto
質問者

お礼

画像以外はとてもいい感じに進みました。 問題が解決されてくると楽しくなってきますね。 アドバイス、とても助かっています。 ありがとうございます。

asutaroto
質問者

補足

>別に本当にインターネットである必要はなくて、LAN上だけでみられればいいですよ おそらくこれが今の私にできることなのかなぁ、と思います。それ以上のものは今の技量では難しいですからね。 HTML形式の保存はタグごと保存する形でいけました。 画像表示がまだ上手くいってませんけど^^;なんとなく原因がつかめているのですが、上手くいきませんね。現在試行錯誤しながら色々やっています。 写真を貼り付けた後、保存するときに画像処理ができてないというのはわかっているのですが・・・。 Public Sub picOpen()'写真を選択する With CommonDialog1 .CancelError = True On Error GoTo ErrHandler .ShowOpen PathName = .FileName image1.Picture = LoadPicture(.FileName) End With Exit Sub ErrHandler: End Sub 上記で画像貼り付け後、HTMLで保存したのですがイメージファイルのパスが上手くいかず表示されません。どこかに致命的なミスがあるような感じで不安です。LoadPicture(.FileName)がおかしくなってる原因な気がしなくもなく・・・自分にとっては難問ですね。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

#2です。補足ありがとうございました。私は答える力が無いようなのですが、今後答えていただける方のために、少しフォローさせてください。 (1)当初、先生がWEBページを提供する。 (2)生徒さんの体験学習の結果を(1)のWEBページに    載せる(書きこむ、内容を加える)。文字だけでなく写真画像なども。 (3)その後先生や生徒さんは、(1)のWEBページを見て    色々な生徒さんが加えた後のページを見て学習する。 こう言うことがしたいのでしょうね。 これって、相当高度なことだと思いますが。特に画像を加えるのは。 (1)の場合は勿論、(2)(3)の場合、ISPのサーバーの中に、生徒さんの書きこんだ文章や画像を保持してもらわないとならないと思います。それにはサーバーに処理を要求することになるわけですし、プログラム処理をサーバーに実行させなければならないと思います。それにはCGIなどのプログラムが必要だし、追加保持やプログラム実行はサーバー側が許しているかどうか、などがあります。 生徒さんの体験学習成果を加えたものを、加える都度アップロードするなら、ホームページの内容改訂を回数を重ねるに過ぎないでしょうが、それではない。 文章を加えるのは、このOKWEBなども色んな人が加えた回答を見ているのですから、実例として良くあるのですが、写真を加えるのってどうなるのだろう??

asutaroto
質問者

補足

補足後こんなに迅速に対応していただいて、ありがとうございます。説明不足だったため、2度もアドバイスをいただき申し訳ありません。 ネット上での作業はかなり難しいものになりそうですね、ネットを介さないでファイルのみの処理にすればCGIやサーバーのことは考えずに簡単になりそうな気もします。そうすると友達が作った作品を見合う一種のプレゼンソフトのようなものになりそうな気がします。 まずは作った作品をタグごとHTMLで保存してみようと思います。ありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

>写真貼り付けや、テキストへの記入後、どうやって保存すればいいのかわからないという点です。保存時にタグごと全部書き込むというのは、何か違う気がしたので。 「写真貼り付けや、テキストへの記入」「保存」について、誰が、どこに、何のために、どう言うキッカケで、など説明されてはどうですか。意味が判りません。

asutaroto
質問者

補足

まとまらない形で質問してしまい、申し訳ありませんでした。小学生の調べ学習等のまとめに使えるようなプログラムを考えていたのですが、上記の文章では明らかに説明不足でした。すいません。 調べた地名をcomboBox1のリストから選択 調べた人は誰か、をcomboBox2から選択 題名をTextBox1に入力する 写真をImage1に貼り付ける 最後に調べた場所についての感想や感じたことをTextBox2に入力する それをHTML形式で保存し、他の人の作品を見せ合うという感じにしたいと思っています。見せ合うときのタグは質問の通りです。保存時にタグ込みで書き込むのがいいみたいですね、勉強不足でした。 まずは作品をネット上で閲覧できないことには始まらないので。閲覧用のブラウザも作成しますが、この質問とは別になりますね。

  • takasebou
  • ベストアンサー率42% (61/144)
回答No.1

えーっと具体的に何をしたいのでしょうか? 1.HTMLファイルを作りたい。 2.VB上からWebサーバーにアクセスして、直接Webを作りたい まぁ、1だと思いますし、2にしてもVBのCGI、あるいはASPを作るのでもないかぎり、HTMLを作る必要はありますが。 VBを使ってHTMLを書くのだとすれば、別にベタで拡張子を".html"のテキストファイルを作ればいいだけです。 タグは普通にそのままかけばいいです。 dim fp as long dim acFileName as string acFileName = (ファイルパス+ファイル名) fp = freefile open acFileName for output as #fp print #fp,"<HTML>" print #fp,"<HEAD><TITLE>" & comboBox1.text & "</title></head>" print #fp,"<body bgcolor=ffffff>" print #fp,"<center><h2>" & TextBox1.text & "</h2><BR>" ………… print #fp,"<IMG src=""" & (Web上でのイメージファイルのファイルパス) & """ WIDTH="50%"HEIGHT="50%"> ………… close #fp でいいんじゃないでしょうか?

asutaroto
質問者

お礼

わざわざ書いていただきありがとうございます。 自分でも何が言いたかったのか、文章を見てわからないという酷さでした、申し訳ありません。 タグごと書き込む形式でいけそうですね。 試してみます、ありがとうございました。

関連するQ&A

  • HTMLのブラウザでの表示

    メモ帳でHTMLを書き、ブラウザで表示したとき、文字が表示できるとき(XX.html)とできないとき(XX01.html)があります。比較した添付ファイルがありますが、どこに問題があるのでしょうか。教えてください。 プログラムは下記のようになっています。 <HTML> <HEAD> <TITLE>STAY</TITLE> <STYLE type="text/css"> <!-- BODY{  color:white; background-color:black; } H1{  color:red; } --> </STYLE> </HEAD> <BODY> <CENTER> <H1>STAY</H1> <H2>-〇◎の紹介ページ-<?/H2> <HR> ようこそ、〇◎へ </CENTER> </BODY> </HTML>

  • EXCEL VBA SetFocus について教え

    ComboBox3 で郵便番号 住所 を選択して TextBox8 に表示 その後番地等を記入するため Private Sub ComboBox3_AfterUpdate() '郵便番号 住所 Workbooks("*****.xls").Activate Worksheets("**").Activate With UserForm7 No = .TextBox1.Value .TextBox7.Value = Mid(.ComboBox3.Text, 1, 8) Cells(No + 1, 7).Value = Mid(.ComboBox3.Text, 1, 8) '郵便番号 .TextBox8.Value = Mid(.ComboBox3.Text, 10) '住所 Cells(No + 1, 8).Value = .TextBox8.Value .ComboBox3.Visible = False .TextBox8.SetFocus .TextBox8.TabIndex = 4 .TextBox8.Text = Mid(.TextBox8.Text, 1) End With End Sub 上のコードで TextBox8 の テキストの最後にカーソルを移動したいのですが TextBox8 に カーソルは現れません。(UserForm7の最初のTextBox1にフォーカスが移る) UserForm8 にも 同様なコードが有りますがこちらは期待どうり動作します。 タブオーダーとかの違いは有りますが関係するのでしょうか  よろしくお願いします。

  • web上のTextBoxに値を代入したい

    asp.netとVBでwebプログラムを作成しています。 web上にTextbox1~Textbox10を置いて、それぞれに1,2,3,4・・・・10を代入したい場合 Textbox1.text = 1 Textbox2.text = 2 ・ ・ Textbox10.text = 10 と書けば、それぞれに数字が代入され表示されますが、 For i = 1 to 10 Me.controls("Textbox" & cstr(i)).text = i Next と言うような書き方でコンパクトにまとめることは可能なんでしょうか? ちなみに、上記の記述をすると、「.textはSystem.Web.UI.Controlのメンバーでない」旨の エラーになります。 どなたかご教示お願いします。

  • HTMLとJAVASCRIPT

    パソコンほぼ初心者なのですがHTMLとPHPとJAVASCRIPTを用いて軽いシステムを構築しています。 そこで一つ質問があります。 ---------------------- <html> <head> </head> <body> 表示させたいテキストボックスンの数は <input type=text> 個です。 </body> </html> --------------------------------- 上記のソースなんですが、テキストボックスに数字を入れて、その数だけテキストボックスを表示させたいのですが、どのようにすれば良いでしょうか? ブラウザはIE7です。

  • Excel ユーザーフォーム呼び出し時エラー

    WindowsVista HomePremium Excel 2007 Microsoft Visual Basic 6.5 です。 Excelでユーザーフォーム(UserForm1)を作り、   Sub Auto_Open()     UserForm1.Show   End Sub で起動時に呼び出すようにしました。 確認のため、一度Excelを閉じ起動し直したところ正常に動作しました。 もう一度確認のため同じように再起動をすると、  実行時エラー '2110': コントロールが表示されていない、利用できない、またはフォーカスを持てないため、そのコントロールにフォーカスを移すことはできません。 と出て、それ以降何度やっても動作しなくなってしまいました。 解決法か原因がわかる方いらっしゃいましたら、ぜひご教授ください。よろしくおねがいします。 ユーザーフォーム関係のコードを以下に書いておきます。(内容は小遣い帳のようなものです。) ―――――――――――――――――――― Private Sub CommandButton1_Click() Dim NUM As Integer If TextBox1.Text = "" Then MsgBox "概要が記入されていません。" TextBox1.SetFocus GoTo 100 ElseIf TextBox2.Text = "" Then MsgBox "収支が記入されていません。" TextBox2.SetFocus GoTo 100 ElseIf ComboBox1.ListIndex = -1 Then MsgBox "収支の種類が選択されていません。" ComboBox1.SetFocus GoTo 100 End If Range("F6").Select NUM = 0 Do While ActiveCell.Offset(NUM, 0) <> "" NUM = NUM + 1 Loop ActiveCell.Offset(NUM, 0).Select ActiveCell = TextBox1.Value If CheckBox1 = True Then TextBox2 = -TextBox2 End If If ComboBox1.ListIndex = 0 Or ComboBox1.ListIndex = 1 Then ActiveCell.Offset(0, ComboBox1.ListIndex + 1) = TextBox2.Value Else ActiveCell.Offset(0, ComboBox1.ListIndex + 2) = TextBox2.Value End If TextBox1 = "" TextBox2 = "" CheckBox = Falses ComboBox1.ListIndex = -1 100 End Sub ―――――――――――――――――――― Private Sub CommandButton2_Click() Dim NUM As Integer If TextBox3.Text = "" Then MsgBox "移動金額が記入されていません。" TextBox3.SetFocus GoTo 100 ElseIf ComboBox2.Text = "" Then MsgBox "移動元が選択されていません。" ComboBox2.SetFocus GoTo 100 ElseIf ComboBox3.ListIndex = -1 Then MsgBox "移動先が選択されていません。" ComboBox3.SetFocus GoTo 100 End If Range("F6").Select NUM = 0 Do While ActiveCell.Offset(NUM, 0) <> "" NUM = NUM + 1 Loop ActiveCell.Offset(NUM, 0).Select ActiveCell = "移動" If ComboBox2.ListIndex = 0 Or ComboBox2.ListIndex = 1 Then ActiveCell.Offset(0, ComboBox2.ListIndex + 1) = -TextBox3.Value Else ActiveCell.Offset(0, ComboBox2.ListIndex + 2) = -TextBox3.Value End If If ComboBox3.ListIndex = 0 Or ComboBox3.ListIndex = 1 Then ActiveCell.Offset(0, ComboBox3.ListIndex + 1) = TextBox3.Value Else ActiveCell.Offset(0, ComboBox3.ListIndex + 2) = TextBox3.Value End If TextBox3 = "" ComboBox2.ListIndex = -1 ComboBox3.ListIndex = -1 100 End Sub ―――――――――――――――――――― Private Sub CommandButton3_Click() Unload Me End Sub ―――――――――――――――――――― Private Sub CommandButton4_Click() Unload Me End Sub ―――――――――――――――――――― Private Sub UserForm_Initialize() myarray1 = Array("収支", "クレジット", "郵便局", "机", "500", "1") For i = 0 To 5 ComboBox1.AddItem myarray1(i) ComboBox2.AddItem myarray1(i) ComboBox3.AddItem myarray1(i) Next i TextBox1.SetFocus End Sub

  • フォーカスの順番移動

    VBAで今フォーム1にテキストボックス2つ コンボボックス3つ上から順にあるのですが エンターキーまたはタブを押すと上から順番にフォーカスを移動させたいので すが、どうすればいいのでしょうか?プロパティの設定でできるのでしょうか ?今はタブキーを押すとばらばらの順番でフォーカスが移動します。なぜでしょう? ちなみにコントロールの名前は上から TextBox1、TextBox2、ComboBox1、ComboBox2、ComboBox3です

  • C# comboBoxにTextAlign

    C#でカスタムコントロールを作成しています。 comboBoxにReadOnlyやTextAlignなどの機能をつけて汎用性の高いコントロールを作ろうと思っているのですがなかなかうまくいきません。 ReadOnlyは出来たのですがTextAlignがどうしても出来ません。 DropDown表示時のTextAlignについてはネットで見かけたのですが、comboBox内のTextのTextAlignを変更するような方法がみつかりません。 comboBoxの上にTextBoxを重ねて、みたいなこともやってみたのですがうまくできませんでした。 どなたかご教授ください。 よろしくおねがいします。 VisualStudio2005を使用しています。

  • テキストがうまく反映されない!

    携帯サイトを初めてつくろうと挑戦しています。 <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=Shift_JIS"> <meta http-equiv="Cache-Control" content="no-cache"> <title>題名</title> </head> <body bgcolor="#ffffcc" text="#000000" link="#3366ff" alink="#000099"> <front color="#ffffff">題名</front> </body> </html> 上記のようにテキストを書いたんですけど、HTML化しても背景の色とか変わってないんです。。真っ白です。。何が原因でしょうか??※TeraPadを使ってテキストを書いています。

  • C#で動的にコントロールを取得するにはどのようにしたらよいのでしょうか

    C#で動的にコントロールを取得するにはどのようにしたらよいのでしょうか? C#2008ですが、Form1にTextBoxが30個あって、textBox1~textBox30という名前がついています。 このテキストボックスの値をForm2で取得したいのですがなかなかうまくいきません。 ------------------------- Form2: private void Form2_Click(object sender, EventArgs e){  Form1 fm = new Form1();    int No = 15; //ここを1~30まで動的にしたい  string result = fm.textBox15.Text; //直接comboBox_type15と書くのではなく「"comboBox_type" + No.ToString()」のようにしたい  MessageBox.Show(result); } ------------------------- コントロールを配列にして Control[] ctlArray = new Control[30] { fm.textBox1, fm.textBox2, …, fm.textBox30 }; のようにしてみましたが、エラーになってしまいます。 いろいろネットで検索してみたのですが、「コントロール名を動的に文字列で作成して使う」という方法がどこにも載っていなく、数時間格闘しています。 すみませんがご教授願います。よろしくお願いいたします。

  • ウェブブラウザに直接に表示するには?

    (VB6) テキストボックスにHtmlのソース文字列が入っています。これをWebBrowserコントロールに表示するにはどうすればいいでしょうか? 例えば、テキストボックスに <html> <head> aaa </head> <body> bbb </body> </html> という文字列が入っているときに、WebBrowserにこのHtmlを表示させるにはどうすればいいでしょうか? htmlファイルを読み込んで表示させる方法は分かったのですが、htmlのソースの文字列を直接に表示する方法が分かりませんでした。 そもそも、こんなことが出来るのかどうかもわかりませんが、よろしくお願いいたします。

専門家に質問してみよう