オブジェクトに値を保持させるにはプロパティに追加ですか?

新たなプロパティを作成してそこに保持する方法でいいですか?
ほかのやり方がありますか?

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

A 回答 (4件)

ううん・・・



参照渡しの値渡しという言葉の意味が良く分かりません・・・
すいません。

内部クラスをプロパティに持つクラスを
値渡ししたい場合は、
その内部のクラスを自力でコピーしないとだめです。

所感で申し訳ございませんが、参照型、値型、参照渡し、値渡しがどういったものがきちんと掴めていないまま
クラスのプロパティのやり取りを行おうとしているように感じます。
少し学習の順序が違うのではないでしょうか?

確かに販売されているVB.netの書籍には、分かりやすい本はいくつかあります。
しかしそのいずれも、「オブジェクトのコピー」や「参照をコピーします」等といったキーワードが多数出てきます。

そしてそのキーワードの「本当の意味」が分からないままその本を熟読しても、「自分なりの解釈」で納得してしまうので、読み進めていくうちに「?」がいっぱいでてきて行き詰ってしまうのです。

何か必要にせまられてVB.netを選択しているのでしょうか?
時間的に余裕があり、「プログラムの勉強」をテーマとしているのならば、CやC++を基礎からやるのがお勧めです。

なぜなら、プログラミングの基礎が「本当の意味」で身につくからです。

VB.NETの開発をVisual Studioでやっていると思いますが、これは
「あまりにも便利すぎる」開発環境であると私は思っています。

VB.netは開発が楽ですし、あまりプログラムの内容を意識しなくても
「なんとなく」動く物ができてしまいます。

だから、rescue98さんのやろうとしているような、オブジェクトの概念必要な「オブジェクトのやり取り」や「プロパティ」の実装のところで躓いてしまうのです。

まずは、オブジェクトとはなにか?値型とは何か?参照とはなにか? という概念自体をしっかりと身に着ける必要があるのではないでしょうか?

CやC++は、メモリの扱いや参照、値型などの知識がないと
まともに動く物が作れません。
そういった意味で、VB.netを選択するのは危険だと思います。

CやC++を勉強しようとしたとき、
あまりにも「何を」していいのか分からず、聞く人もいないので、
簡単に勉強を始めることができる.NET関連の本を手に取ってしまうことは良くあります。

かといって、.NETが内部でどういう動きをしているのか?
を理解し、きちんと設計ができるようになるまでの時間は、
C++を知っている人とそうでない人との違いは雲泥の差があります。

rescue98さんが最初に立てた
「オブジェクトに値を保持させるにはプロパティに追加ですか?」
という質問から相当ずれてきてしまっているので、
一旦〆られて、

別途 「参照型、値型の概念を身に付けるお勧めの方法は?」などのトピックを新しく作られてみてはどうでしょうか?

老婆心からいろいろと記述してしまい申し訳ございません。
    • good
    • 0
この回答へのお礼

ありがとうございます。

Cは読みました。あのC言語を作った人の「プログラミング言語C」という本を読みました。

JAVAもEclipseにVisual Editorを入れてテーブルデータモデルを適用した表を作ってみました。

CはGUIがむずい。
JAVAはいろいろ別の仕組みを導入していかないと開発できない。
JUnitなど。

あとJAVAは継続した一環した開発が出来にくい環境だと判断しました。

そこでC#かVBかとなったわけですが、Visual C#かVisual BasicならVBを選ぶでしょう。

>VB.NETの開発をVisual Studioでやっていると思いますが、これは「あまりにも便利すぎる」開発環境であると私は思っています。

VBは簡単。誰でも出来る。
VBが出来るというとみんな口を揃えてそう言います。
・・・ならなぜ簡単なVBで開発しないの?と思ってしまいます。

今は勉強中なので基礎がわかってませんが、一通り本を読んで、VBを習得すると決めました。
ということで、本を読み進めたいと思います。

またよろしくお願いしますmm

お礼日時:2009/06/01 00:46

共有プロパティって、


静的メンバ、つまりSharedのことですよね。

値渡しと参照渡し、また静的メンバ の事をよく知らずに使ってしまうと特にマルチスレッドのプログラムを作る時にえらい事になるので。
今は使わないほうがいいでしょう。

まだ コピーできなくて うんうん悩む方がましです(笑)


>>プロパティ設定済みのオブジェクトをオブジェクト型に代入すると>>プロパティは付いてきますか?

ざっくり言うと、
そのプロパティが「値型(integetとかVB.netで用意されている型)」ならついてきますし、
「参照型(オブジェクト)」なら、参照のコピー。(つまり、ショートカットのコピー)
が渡されます。
 値型、参照型については調べてみて下さい。

どちらでコピーしても、
オブジェクトを代入した変数から、対象となるプロパティを見たら値が取れるはずです。

そもそも取れないというのは「オブジェクト参照がどうのこうの~」って例外がでるんですか?
それなら多分コーディングが間違ってると思うので、
ソースUPする方が早いかもしれません。

って、VB.net VS2005のつもりで話ししてますがあってますか?

とりあえず、
参考URL先に オブジェクトの中身を全部コピーする方法があるのでやってみてください。

参考URL:http://blogs.wankuma.com/jeanne/archive/2006/04/ …
    • good
    • 0
この回答へのお礼

ありがとうございます。

もうじき?Visual Studio 2010が出るので、
出たらすぐ使えるようにするために、Visual Studio 2005を先に本で勉強しています。

本にはこう書いていました。

オブジェクト参照はオブジェクトのアドレスのコピーが渡される。←これは参照渡しのことですね。
オブジェクト参照をプロシージャに渡し、元のオブジェクトに影響を与えないようにするには、オブジェクトのコピーを自分で作成します.
オブジェクトのコピーは、新しいオブジェクトを生成し、すべてのプロパティを正しく初期化する必要があります。←ここで?
オブジェクトのプロパティの数が多い場合は、コードがかなり必要になります。←????

以上のことが書いていました。
プロパティがあると初期化しないといけない、その数分コードを書かないといけない・・・と判断しました。
この3行目で?になったので、先に進めません・・・


本を何回か解読して、わかったかも知れません!

これは「参照渡しの値渡し」のことなのかもしれません。
ByRefキーワードの引数を()で囲むことで引数を値渡しにできます。

参照渡しの値渡しは、プロパティが引き継がれないということかなという結論に達しました。

参照渡しの値渡しは、プロパティは自力で入れる必要がある。ということで合っていますか?

お礼日時:2009/05/31 14:59

>>クラスからオブジェクトをインスタンス化させて実体を作るわけですよね。



そうです!

>>その実体に値を保持させるには、プロパティに代入すると、他のクラ>>スからその実体のプロパティに値を代入していくのかと思いました。

ですね。プロパティ経由で、クラスが持っている値を変更することができます。
しかし、そのオブジェクト(クラス)のプロパティは
「何の為に存在しているのか」をよく考えて外部に公開したり、しなかったりを考えて作ってください。

例えば、私自身のオブジェクト(クラス)は、以下のように表現できます。

''' ◆Unripe01のオブジェクトです。
Public Class Unripe01

'クラス内のみで使う変数です。(プロパティ用)
Private _Caption As String
Private _Name As String
Private _Age As Integer

''' コンストラクタ
Public Sub New()
_Name = "Unripe01"
_Age = 60
End Sub

'''*-- Unripe01の名前
Public ReadOnly Property Name() As String
Get
'他の人に名前の変更をされたら困るので、ReadOnly
Return _Name
End Get
End Property

'''*-- Unripe01の年齢
Public ReadOnly Property Age() As Integer
Get
'他の人に年齢の変更をされたら困るので、ReadOnly
Return Age
End Get
End Property

'''*-- Unripe01の説明
Public Property Caption() As String
Get
Return _Caption
End Get
Set(ByVal value As String)
'Unripe01の評判は他の人から判断されるのでSetできる。
_Caption = value
End Set
End Property

End Class

これを、ほかの人が操作する場合は、
''' メイン処理
Private Sub Main()

'コンストラクタを呼んで、Unripeのインスタンス化
Dim unripe As New Unripe01()

'Unripe01の評価を下します。
unripe.Caption = "この人の説明は分かりづらいです。"

End Sub

こんな感じで。

>>クラスをパブリックにしても他のクラスからアクセスできるのですね。

これはプロパティの誤り?かと思いますが、
VB.netではクラスは元々パブリックです。Privateにする為には、Publicなクラスの内部クラスとして宣言する必要があります。

が、最初はそういうクラス設計をしないように、クラスを組み立てて言ってください。

上記例で言えば、Unripe01クラスのプロパティに、Unripe02さんのオブジェクトやプロパティがあったらUnripe01オブジェクトの存在意義が分からなくなってしまいますよね。

「1オブジェクトは、一つの何かを表す。」
という事をいつも前提に置いてください。


>>オブジェクトをコピーするとプロパティは初期化されるそうです>>が、プロパティ設定を維持したままオブジェクトはコピーできないん>>ですか?

結論から言うと、コピーできます。

おっしゃっているオブジェクトのコピーについては、
「値渡し」と「参照渡し」という概念や、「シャローコピー」「ディープコピー」ついて、検索したら色々とサイトが出てくると思いますが、奥が深いです。

「値渡し」と「参照渡し」については
以下のようなイメージです。
(1)Windowsでテキストファイルを作ってください。
(2)そのフォルダのショートカットを作ってください。
(3) (1)のファイルをコピーしてください。(コピー~ファイル名というのができる)

(1)を開いても、(2)を開いても、元々の(1)を開きますよね?
そして(3)は値渡しです。

乱暴に説明してしまうと、その実態オブジェクト(テキストファイル)へのショートカットを見るか、直接コピーするのかが「値渡し」「参照渡し」の違いです。

「コピーできない」と心配しているのは、元々のファイルを消してしまうと、(2)では開けないですよね。

イメージなので、かなり乱暴に説明しているので、、、申し訳ないですが、実際の動きはもう少し違います。

あまり考えすぎると、顔がこわばってしまうので、のんびり勉強してください。
    • good
    • 0
この回答へのお礼

ありがとうございます。
値渡しでも参照渡しでもプロパティは保持されてオブジェクトに付いてくるのですね。

最後に質問ですが、
プロパティ設定済みのオブジェクトをオブジェクト型に代入するとプロパティは付いてきますか?

オブジェクトに代入したらプロパティがくっ付いてこないので、共有プロパティを使うのかなと考えています。

「オブジェクトにオブジェクトを代入すること」と「コピー(値渡し・参照渡し)」は同じことをただ言い方を変えただけなような気がしてきました。

そうすると、共有プロパティの使い道がない・・

プロパティどころか共有プロパティの使いどころすらわからなくなってきました。

複雑ですね。ちょっと考えます・・・

お礼日時:2009/05/29 13:46

はじめまして。



オブジェクトとは、クラスの作成を検討しているのでしょうか?
クラス自身に値を保持させる方法という解釈で、以下ご回答します。

通常、クラスに値を保持させるには
クラス自身の変数、またはプロパティを宣言します。

Privateなフィールドであれば、
クラス変数にしてもプロパティにしても問題がないように思います。

Publicで、外部に公開する場合も、
プロパティを作成したり、
「Public A As String」のように宣言しても使用可能です。

でも、プロパティを使っておくと、
外部に公開されている、機能の実装の修飾であると明示化できるので、
プロパティを推奨します。

稚拙な回答ですが、参考になればいいかと・・・
    • good
    • 0
この回答へのお礼

ありがとうございます。

クラスからオブジェクトをインスタンス化させて実体を作るわけですよね。
その実体に値を保持させるには、プロパティに代入すると、他のクラスからその実体のプロパティに値を代入していくのかと思いました。

クラスをパブリックにしても他のクラスからアクセスできるのですね。
参考になりました。

オブジェクトをコピーするとプロパティは初期化されるそうですが、プロパティ設定を維持したままオブジェクトはコピーできないんですか?
プロパティ指向型言語がよくわかりません・・・

お礼日時:2009/05/28 17:13

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

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

Q英語の偏差値を上げるには

こんにちは。高1女子です。
私の学校では、1年から河合模試を受けます。
国語は得意なので、第1回目の偏差値は73、2回目は76、と、それなりに良い成績を取れています。
しかし、英語は55程度しかありません。英語のせいで、国英の偏差値がとても低くなっていて悔しいです。
文系志望なので、英語の偏差値を上げたいです。
どうしたら英語の偏差値を上げることができるのでしょうか?
普段からの勉強法や、模試の対策など、教えていただけると嬉しいです。
よろしくお願いします。

Aベストアンサー

ズバリ答えます。

単語を覚えるよりも長文問題や文法を徹底的にこなす事が得策だと思います。あとは国立か私立志願かわかりませんが、英文解釈と英語構文を徹底的にする事がお勧めです。

単語を覚えたとしても無数にあるので、大学の受験問題を作るサイドで言えば

それよりも文法と構文が大切なんです!!英語の勉強で言えば骨格にあたるものなんです!骨格を太くすることで次は語法や語彙等を徹底的に覚える。これが英語の近道です。骨を太くする事が英語です。国語の場合は古典は暗記で済みますが、英語は暗記が出来ないのです!!

覚えた単語が試験に出る確率は低いのです。逆に文法問題や英文解釈問題、英作文問題が出やすいのです。

対策ですが、早い段階で予備校(できれば河合塾か駿台)、通信教育で言えばZ会、進研ゼミをするのがお勧め。英語で言えばZ会・河合出版・駿台文庫で文法問題や長文問題の本をじっくり解く事をお勧めします!!!

あと模試の偏差値もそうですが、どこが間違えたのかをじっくり見てくださいね。

Qユーザーコントロールのプロパティの値の保持

ユーザーコントロールを作成して、使用しているのですが、独自のプロパティを作成し、実際に配置した複数のコントロールで、各々値を設定しても、プロジェクトを一度閉じてしまうと、その他プロパティの値が保持されません。
何か基本的なことを見落としているような気がするのですが、行き詰ってしまいました。
解る方いらっしゃいましたら、アドバイスお願いいたします。

Aベストアンサー

PropertyBagを調べてみると幸せになれるかも。

Q「白黒二値」、英語は?

画像を白黒二値化しました。英語で説明をしなければならないのですが、画像の「白黒二値」、「白黒二値化」などの英語の表現法をお教えください。名詞形、動詞形などお教え頂けましたら助かります。よろしくお願いします。

Aベストアンサー

あっているのかどうかわからんが。
http://en.wikipedia.org/wiki/Grayscale
経由で以下の情報にたどり着いた。
http://en.wikipedia.org/wiki/Binary_image

QVBAでオブジェクトのプロパティの値を変えたい

エクセル2010のマクロの話なのですが、
添付画像にある、オブジェクトの「Value」というプロパティーの値を変更するための文法がわかりません。

 PsyBcLbll.Value=13342353654

という感じで書いているんですが,
たしか、
「変数が宣言されていない」

とかいうエラーが出てうまくいきませんでした。
一体、どう書けばいいんでしょうか?

Aベストアンサー

図では
PsyBcLbll.Value=13342353654
ではなく、下のように2文字目が数字の1に見えますが・・・。
PsyBcLbl1.Value=13342353654

Q英語で偏差値80を目指すには・・・

現在高2です。英語の偏差値(進研模試)で70前後なのですが、偏差値80あたりをとるにはどのような勉強をすればよいのでしょうか。国立の二次試験(後期)は英語だけなので、いまの偏差値だとぎりぎりです。

Aベストアンサー

偏差値70-80レベルになると大部分の問題は答えられるレベルであとほんの少しわからないものがある状態だと思います。

したがって,自分の苦手な問題は何か良く解析してその部分を徹底的に勉強するしかないと思います。

Q配列の値を保持しながら要素を追加するには

通信データを処理するプログラムを作っています

変数strDataにCR区切りのデータがいくつか(個数はそのつど変わります)文字列として入って送られてきて、
それを配列strData1()に入れて、たとえば
strData1(r)=strData1(r+1)+strData1(r+2)+strData1(r+3)
のような計算をしようと思っています。

strData1 = Split(strData, vbCr)
For r = 0 To Ubound(strData)-2
strData1(r) = (CDbl(strData1(r)) + CDbl(strData1(r + 1)) + CDbl(strData1(r + 2))
Next r

とすると、配列の最後の2つの要素は何も出てきませんよね。

なので、最後の2つのデータを保持しながら、次に来たstrDataを配列にいれて、For文の計算に戻すことをしたい、
また、strDataが3個以下の場合も考えると、ある一定個数をためてから一気に計算させたほうがいいのかとも思いますが、
For文が終わるとまたすぐに一行目を実行して上書きされてしまうようで、うまい方法がわかりません。

なにかヒントになりそうな考え方だけでもいいので、ご助言お願いします。

通信データを処理するプログラムを作っています

変数strDataにCR区切りのデータがいくつか(個数はそのつど変わります)文字列として入って送られてきて、
それを配列strData1()に入れて、たとえば
strData1(r)=strData1(r+1)+strData1(r+2)+strData1(r+3)
のような計算をしようと思っています。

strData1 = Split(strData, vbCr)
For r = 0 To Ubound(strData)-2
strData1(r) = (CDbl(strData1(r)) + CDbl(strData1(r + 1)) + CDbl(strData1(r + 2))
Next r

とすると、配列の最後の2...続きを読む

Aベストアンサー

すみません、#3 の
>(1) r = 0 の処理
>(2) r = 1 の処理
>(3) For r = 2 To UBound(strData1) - 2
は間違いです。
(1) 保存した strData1(n-2) の計算
(2) 保存した strData1(n-1) の計算
(3) For r = 0 To UBound(strData1) - 2
ということです。
つまり、
Private Sub Pool(ByVal strData As String)
  Dim strData1() As String
  Dim i As Integer
  Dim n As Integer
  Static vPrev1 As Variant
  Static vPrev2 As Variant

  strData1 = Split(strData, vbCr)
  If Not IsNull(vPrev1) Then
    vPrev1 = vPrev1 + vPrev2 + strData1(0)
    vPrev2 = vPrev2 + strData1(0) + strData1(1)
  End If

  For i = 0 To UBound(strData1) - 2
    strData1(i) = strData1(i) + strData1(i + 1) + strData1(i + 2)
  Next i

  n = UBound(strData1)
  vPrev1 = strData1(n - 1)
  vPrev2 = strData1(n)

End Sub

のような感じです。
初期化されていない Variant は IsNull(v) = True になるのかどうかは、ちょっと自信なしです。

すみません、#3 の
>(1) r = 0 の処理
>(2) r = 1 の処理
>(3) For r = 2 To UBound(strData1) - 2
は間違いです。
(1) 保存した strData1(n-2) の計算
(2) 保存した strData1(n-1) の計算
(3) For r = 0 To UBound(strData1) - 2
ということです。
つまり、
Private Sub Pool(ByVal strData As String)
  Dim strData1() As String
  Dim i As Integer
  Dim n As Integer
  Static vPrev1 As Variant
  Static vPrev2 As Variant

  strData1 = Split(strData, vbCr)
...続きを読む

Q極大値・極小値 を英語で

解答でよく、
最大値をMax、最小値をMinと書くことがありますが、
極値も極大値Max、極小値Minと書いてもよいのでしょうか?

英語では同じですが
これがよいのだとすると
極値も最大値・最小値も求める問題のときに混乱してしまう気がします。

わかりやすく納得できる説明が欲しいです。
よろしくお願いします。

Aベストアンサー

私が採点するときに極大・極小のところを《Max・Min》を使ってたら、【ホントに理解してますか?】とコメントを入れます。
そして【人に見せる解答に略語を使うのは避けたほうがいいです。】とも書きます。
(特にこの場合、【Max,Min】は最大値・最小値に対して使うことが多いのです。)

私は《減点したくなる》のですが、実際減点するのは数学的ではないと思うので、もちろん解が当たってれば正解にします。
(かなり矛盾があるかもしれませんが)数学的に理解していればどう書こうが普通は許してくれると思います。
ただ、解答を書くときには、見せる対象の人が納得できるような形にすべきだと考えます。
だから略語を使うのは避けるべきなのです。

(ただ私が言った【Max ×】は当然意味はわかりますが、数学的に許されない行為だと思うのです。)

QVBAのオブジェクトの値を保持しておくには

ExcelのVBAにおいて、Deleteメソッドを使用して、
オブジェクトを削除する場合に、削除前に保持データを丸々待避させる
よい方法はないでしょうか。

例)グラフタイトルのフォントスタイルを書き戻す。
1. ActiveChart.ChartTitle.Fontの内容を待避させる。
2. Deleteでタイトルを消す。
ActiveChart.ChartTitle.Delete
3. 間に種々処理を行う。
4. 新しいタイトルをつける。
ActiveChart.HasTitle = True
ActiveChart.ChartTitle.Characters.Text = "foo"
5. ActiveChart.ChartTitle.Fontの内容を新しいタイトルに適用する。
プロパティーを列挙して変数に格納する方法を試したましたが、
プロパティーの数だけコードを書かなければならないので断念しました。

通常の変数であれば、
1. 規定値をセット(A=1)
2. 退避用の変数にAを保持させる(B=A)
3. Aに対して操作を行う
4. 待避した値をAに書き戻す(A=B)
というようなことができるのですが。
オブジェクトにSet等を試しましたが、Setを使ってオブジェクトを入力した場合、
もとオブジェクトの変化に対して動的に値が変化するため、待避できませんでした。

どなたか、わかる方がいらっしゃいましたら、よろしくお願いいたします。

使用環境
WindowsXP SP2
Excel 2002 SP3

ExcelのVBAにおいて、Deleteメソッドを使用して、
オブジェクトを削除する場合に、削除前に保持データを丸々待避させる
よい方法はないでしょうか。

例)グラフタイトルのフォントスタイルを書き戻す。
1. ActiveChart.ChartTitle.Fontの内容を待避させる。
2. Deleteでタイトルを消す。
ActiveChart.ChartTitle.Delete
3. 間に種々処理を行う。
4. 新しいタイトルをつける。
ActiveChart.HasTitle = True
ActiveChart.ChartTitle.Characters.Text = "foo"
5. ActiveChart.ChartTitle.Fon...続きを読む

Aベストアンサー

>Setを使ってオブジェクトを入力した場合、もとオブジェクトの変化に対して動的に値が変化

 そうなんですよね~。オブジェクトの代入は、オブジェクト・アドレスの参照渡しになって、値コピーを行ってくれません。これがVB.NETであれば、CopyやCloneメソッドがあるので、値コピーを行えますが、VBAはVB6仕様なので、恐らくCopyやCloneメソッドの類はありません。
(でも調べて下さいね。そして見つかったら、教えて下さい^^)

>プロパティーを列挙して変数に格納する方法を試したましたが、プロパティーの数だけコードを書かなければならないので断念しました

 私は今まで、これでやって来ました。ただしプロパティーCopy用のClassをつくり、一回作れば、目的のObjectを与えるだけで、Copyから再Copyまで全てやってくれるようにしています。またCopyするプロパティーは必要最小限に抑えています。Classであれば、拡張も容易ですし、ExcelのClassを部品として再利用できます。
 注意点としては、Excel Objectのプロパティーには、それ自体Objectであるものも多数含まれるので、Copyを行う際には、Objectの最下層プロパティーまで遡って、値型(StringやInteger,Singleなど)のプロパティーを退避させる必要のある事です。

>Setを使ってオブジェクトを入力した場合、もとオブジェクトの変化に対して動的に値が変化

 そうなんですよね~。オブジェクトの代入は、オブジェクト・アドレスの参照渡しになって、値コピーを行ってくれません。これがVB.NETであれば、CopyやCloneメソッドがあるので、値コピーを行えますが、VBAはVB6仕様なので、恐らくCopyやCloneメソッドの類はありません。
(でも調べて下さいね。そして見つかったら、教えて下さい^^)

>プロパティーを列挙して変数に格納する方法を試したましたが、プロパティー...続きを読む

Q偏差値40英語・・・

私は本当に英語が出来ません。
というか、勉強の仕方がわかりません。

楽な方法じゃなくて良いので、英語が出来るようになる方法を教えて下さい。出来れば偏差値60の大学でトップのレベルになりたいです。

今は単語の覚え方も分からない、文法も分からない、短い文も読めないので長文なんて読めないってかんじです正直(笑)

何だか英語が不得意で、他の科目は偏差値65英語は40もいかないという感じです笑
原因は嫌いだからということもあるでしょうが、私が理系の頭なので、根本的に英語というものの勉強法が分かっていなくてだめなのかな?と思い質問させていただきました。

今高3です!

Aベストアンサー

おお、俺ガイル(笑)
つい先日、似たような質問をした者です。
私の場合、偏差値はあなたのより低い36でしたけど。
http://oshiete.goo.ne.jp/qa/8469327.html
以下は、あくまで「英会話ができるようになるためのお勧めの勉強法」であり、「受験で合格するためのお勧めの勉強法ではない」のですけど、それでもよろしければ。

私の場合、解決策としては「思い切って留学する」でした。

現実問題として留学するのが難しいのなら、
洋画を英語音声で観る。最初は字幕なしで。次には英語字幕付きの英語音声で。そして、その後は『観ない』。という勉強法がいいですかね。

NHKの教育番組(Eテレ)でやってる「プレキソ」という英語番組もいいですよ。
本来は子供向けの英語番組なんですが、日本語がまったく出てこないので、教材としては最適です。
英語ができない友人にまったくのボランティアで英会話の個人レッスンをしてるのですが、私は教材にこの番組を使っています。

とにかく、日本語が出ちゃダメなんです。日本語が出るとどうしても日本語に頼ってしまいます。脳が日本語の思考になってしまうので、英語での思考がいつまで経ってもできないんですよ。
英語で入ったものをそのまま英語で処理するんです。いちいち日本語に翻訳しない。そしていちいち辞書を引いて意味を確認しない。これが重要です。

人間は取り入れた情報を脳が処理しようとします。
食べ物だと食べやすい物を好むように、人間の脳は、処理しやすい情報を好んで処理しようとします。なので日本語が入ってくると、英語での情報を捨ててしまって日本語に頼りっぱなしになります。
なので(余談ですが)「スピードラーニング」。あれの効果については私は甚だ疑問に思いますね。英語の後で日本語の解説がつく。それが余計です。
全部英語の、解説は無し、の方がよっぽど効果があると思います。

また、最近では安価でスカイプを利用したインターネット英会話レッスンもあります。
そういうのを利用するのもいいのではないでしょうか。
私もまだ利用していませんが、近いうちに始めようかな?と思ってます。
私は「自分が英語を教わる代わりに、自分が日本語を教えるからレッスン代はタダ」ってサイトを利用しようか?と考えています。
http://www.e-kaiwa.net/

ああ、私が書いたのはあくまで「中3レベルぐらいの英語力はある」ということ前提です。
関係代名詞や受け身までは理解できた、というぐらいですね。
「I my me ってなんですか?」や、「be動詞ってなんですか?」レベルだと英語だけ聴いたとしても英語力の上達は見込めませんので、ラジオの基礎英語講座等を利用して、レベルの底上げをして下さい。

おお、俺ガイル(笑)
つい先日、似たような質問をした者です。
私の場合、偏差値はあなたのより低い36でしたけど。
http://oshiete.goo.ne.jp/qa/8469327.html
以下は、あくまで「英会話ができるようになるためのお勧めの勉強法」であり、「受験で合格するためのお勧めの勉強法ではない」のですけど、それでもよろしければ。

私の場合、解決策としては「思い切って留学する」でした。

現実問題として留学するのが難しいのなら、
洋画を英語音声で観る。最初は字幕なしで。次には英語字幕付きの英語音声で。そし...続きを読む

Q「参照の追加」で追加したCOMオブジェクトのエラーについて

「参照の追加」で追加したCOMを、
DIM aa As New ~
Newでインスタンスを生成させたいのですが、エラーが発生して生成できません(--;)

Try ~ Catchでエラーを調べた結果、
エラーコードは、「0x80040154」
メッセージは、「COMオブジェクトは有効でないか、登録されていません」

どうして、このエラーが発生するのかを教えて下さい m(_ _)m

Aベストアンサー

>質問の主旨が、あのエラーが出た時の対処方法ですので、
>不可能であれば、その理由が知りたいのです。

理由?一番最初に書いた、
>1.Newで指定しクラスのオブジェクトが直接作成不可能な場合。他のメソッド等で生成させるときなど。

ですね。
対処法は、ありません。というか、使用可能となる条件を満たしてくださいですね。


ご丁寧に、
>WMPSliderCtrl: Not Public. Internal object used by Windows Media Player.

って書いてくれているとおり、MediaPlayerが内部的に使用しているから公開してないですよ、と。

インスタンスの生成に関して内部的な前提条件が何かあるんでしょう。非公開の。

非公開なんですから、使えたとしても、使えなかったとしても自己責任で。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報