ページ 11

すいませんC言語じゃありませんが

Posted: 2010年2月15日(月) 22:14
by PEGASUS
学校でMicrosoft Visual Basic6.0を使用しプログラミングの勉強をしているのですが家でもできたらいいと思い、同じようなものかとExcelのVisual Basic Editorで授業でやったことを実行してみましたが、
「メソッド、またはデータメンバが見つかりません」となってしまいます。
ずばり、Microsoft Visual Basic6.0とVisual Basic Editorは違うものですか(コードとか)
そのた共通のコードや同じ意味で違うコードなど教えていただけませんか

Re:すいませんC言語じゃありませんが

Posted: 2010年2月15日(月) 22:50
by softya
両方ともちょっと触ったことはあるけど、語れるほど詳しくありません。
VB6とVBA(Excel)は兄弟ですが、色々と違いがあるので完全な互換はありません。
VB6にしかないメソッドもありますし、VBAにしか無いメソッドもあります。

探してみましたが両者の相互移植をしている人を見つけられませんでした。
最新のVB2008もVB6との違いが大きすぎて、互換性が無いですよね。
お役に立てませんでしたね。

Re:すいませんC言語じゃありませんが

Posted: 2010年2月15日(月) 22:50
by PEGASUS
すいません。もう少し具体的にします。
まず、Visual Basic EditorでLabel1(じゃなくても)に線や円、文字を表示するにはどうしたらいいですか

Re:すいませんC言語じゃありませんが

Posted: 2010年2月15日(月) 22:51
by PEGASUS
> 両方ともちょっと触ったことはあるけど、語れるほど詳しくありません。
> VB6とVBA(Excel)は兄弟ですが、色々と違いがあるので完全な互換はありません。
> VB6にしかないメソッドもありますし、VBAにしか無いメソッドもあります。
>
> 探してみましたが両者の相互移植をしている人を見つけられませんでした。
わざわざありがとうございます。
やっぱりあきらめて学校でやろうかな・・・・

Re:すいませんC言語じゃありませんが

Posted: 2010年2月16日(火) 08:39
by non
VBを勉強するのなら、VBAとはだいぶ違いますので、どうせなら、Visual Basic 2008 Express Edition に
した方がいいですよ。VB6とも少し違うところはありますがVBAでやるよりは、ましでしょう。

Re:すいませんC言語じゃありませんが

Posted: 2010年2月16日(火) 09:01
by たいちう
Excelのメニューで[ツール]-[マクロ]-[新しいマクロの記録]を選ぶことで、
次のようなサンプルが簡単に作れますよ。

ラベルは文字を表示するためだけのものですので、図形の描画はできません。
文字を書くだけならば次のMacro1のように、ラベルではないけど図形を描くならば、
Macro2のような方法があります。
Sub Macro1()
    ActiveSheet.Shapes("Label 1").Select
    Selection.Characters.Text = "新しいテキスト"
End Sub

Sub Macro2()
    ActiveSheet.Shapes.AddShape(msoShapeRectangle, 175.5, 182.25, 105#, 69.75). _
        Select
    Selection.ShapeRange.Fill.ForeColor.SchemeColor = 13
    Selection.ShapeRange.Fill.Visible = msoTrue
    Selection.ShapeRange.Fill.Solid
    Range("F23").Select
    ActiveSheet.Shapes.AddShape(msoShapeIsoscelesTriangle, 395.25, 108.75, 132.75, _
        120.75).Select
    Selection.ShapeRange.Line.ForeColor.SchemeColor = 12
    Selection.ShapeRange.Line.Visible = msoTrue
End Sub
# 何をやりたいのか分かりませんが、VBAにこだわらないならば、
# nonさんのアドバイスに同意。

Re:すいませんC言語じゃありませんが

Posted: 2010年2月16日(火) 12:51
by Mikan
VB6.0にあったLineメソッドはVBAにはないみたいですね。

VBAはfor Applicationとあるように、かなり使うアプリに依存して作られています。
なので同じVBAでもかなりコーディングが変わってきます。

Excelであればセルメインのコーディングになりますし、
Accessであればデータベース、Wordは行とかカーソルとかですね。
なので、VB6.0の技術習得として使用するのは一概には良いとは言えません。

ExcelVBAで線を引くのであれば、たいちうさんの仰るように、シェイプを使って再現したり
APIなどを使えば出来るようです。
また、ユーザーフォームを使えばVB6.0のようなフォームが作れますよ。
※コントロールによってはコーディングが変わったような気がします。

作りたいものがあるならば、回答者の皆様もアドバイスがしやすいと思います。

Re:すいませんC言語じゃありませんが

Posted: 2010年2月16日(火) 21:05
by PEGASUS
あいりがとうございました。