[リストへもどる]
新着記事

- 新着記事50件を表示しました -

投稿時間:2007/08/12(Sun) 19:26
投稿者名:MOONEY
Eメール:
URL :
タイトル:Re: VSPRINT.ocxについて
解決できました。

投稿時間:2007/08/10(Fri) 14:53
投稿者名:大吉末吉
Eメール:
URL :
タイトル:Re: Excelの操作
>     Range("A1:B1").Select
>     With Selection
>     Selection.Merge
> なお、NG処理のとき、「Rengeメソッドは失敗しました」という実行時エラーが出ます…。

現象は違いますが、原因は
「VBからExcel及びWordを操作する時の注意事項」
(http://hanatyan.sakura.ne.jp/vbhlp/caution.htm)

と同じでは?

#「想定外のオブジェクト」を操作・参照していますよね。

投稿時間:2007/08/10(Fri) 14:22
投稿者名:89式
Eメール:
URL :
タイトル:Excelの操作
はじめまして。

VBからExcelを新規作成しExcelへの処理が終了したあと画面にExcelを表示させ
Excel側でExcelを閉じて再度処理した場合に、エラーが出る処理と出ない処理が
あります。理由がわからず困惑しています。どこがいけないのでしょうか?


↓↓↓↓↓ OKな処理 ↓↓↓↓↓

    Dim ex As Excel.Application
    Dim wb As Excel.Workbook
    Dim ws As Excel.Worksheet
    
    Dim PATH As String
    Dim FNAME As String
    
    FNAME = Text1.Text
    PATH = "C:\AAA\" & Format(FNAME) & ".xls"

    Set ex = CreateObject("Excel.Application")
    Set wb = ex.Workbooks.Add
    Set ws = wb.Worksheets("sheet1")

    '書き込み
    ex.Cells(1, 1) = "テストで作ってみました^v^"

    ws.SaveAs PATH
    ex.Visible = True
    
    Set ws = Nothing
    Set wb = Nothing
    Set ex = Nothing


↓↓↓↓↓ NGな処理 ↓↓↓↓↓

    Dim ex As Excel.Application
    Dim wb As Excel.Workbook
    Dim ws As Excel.Worksheet
    
    Dim PATH As String
    Dim FNAME As String
    
    FNAME = Text1.Text
    PATH = "C:\AAA\" & Format(FNAME) & ".xls"

    Set ex = CreateObject("Excel.Application")
    Set wb = ex.Workbooks.Add
    Set ws = wb.Worksheets("sheet1")

    'セル結合
    Range("A1:B1").Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
    End With
    Selection.Merge
        
    ws.SaveAs PATH
    ex.Visible = True
    
    Set ws = Nothing
    Set wb = Nothing
    Set ex = Nothing


なお、NG処理のとき、「Rengeメソッドは失敗しました」という実行時エラーが出ます…。

投稿時間:2007/08/10(Fri) 12:44
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:Re: VBからVisio2007のファイルを開きたい。
> Dim appVisio As Microsoft.Office.Interop.Visio.Application
それは、VB.NET 2002, VB.NET 2003, VB2005, VB2008 の場合でしょう。
ここは VB6 用の掲示板ですので、.NET 関係だとしたら板違いです。

もし、VB6 なのだとすれば、
 Dim appVisio As Visio.Application
という宣言になります。


> appVisio = CreateObject("visio.application")
参照設定しているのであれば、CreateObject を使うのではなく、
New キーワードを使って生成するようにしてください。

 '==== VB6の場合 ====
 Set appVisio = New Visio.Application

 '==== .NETの場合 ====
 appVisio = New Microsoft.Office.Interop.Visio.ApplicationClass()


> Dim docVisio As Microsoft.Office.Interop.Visio.Documents
> docVisio = appVisio.Documents.Open("C:\sample.vsd")
.Documents.Open の戻り値は、『Documents』ではなく『Document』型です。

 '==== VB6の場合 ====
 Dim docVisio As Visio.Document
 Set docVisio = appVisio.Documents.Open("C:\sample.vsd")

 '==== .NETの場合 ====
 Dim docsVisio As Microsoft.Office.Interop.Visio.Documents = appVisio.Documents
 Dim docVisio As Microsoft.Office.Interop.Visio.Document = docsVisio.Open("C:\sample.vsd")


なお、.NET の場合は、取得したそれぞれの COM オブジェクトに対して、
System.Runtime.InteropServices.Marshal.ReleaseComObject メソッドを
呼び出して、オブジェクトの解放を行わなければなりません。
(VB6 の場合は、オブジェクトの解放は自動的に行われます)


> 参照設定で "Microsoft Visio **.* Type Library"を追加してあります。

12.0 ですよね?? Visio 2007 なのですから。

投稿時間:2007/08/10(Fri) 10:39
投稿者名:
Eメール:
URL :
タイトル:Re: VBからVisio2007のファイルを開きたい。
少なくともappVisioとdocVisioはオブジェクトなんで

>         appVisio = CreateObject("visio.application")
>         docVisio = appVisio.Documents.Open("C:\sample.vsd")

は「Set」が必要ですよね。

実際どの部分でどのようなエラーが出るのか書いておいた方が
回答も貰いやすいと思いますよ。

投稿時間:2007/08/09(Thu) 22:16
投稿者名:satok
Eメール:
URL :
タイトル:VBからVisio2007のファイルを開きたい。
タイトルのとおり、VBからVisio2007のドキュメントを開く方法をおしえてください。

自分なりに以下のように作成してみたのですが、エラーが発生します。

        Dim appVisio As Microsoft.Office.Interop.Visio.Application
        Dim docVisio As Microsoft.Office.Interop.Visio.Documents

        appVisio = CreateObject("visio.application")
        docVisio = appVisio.Documents.Open("C:\sample.vsd")

参照設定で "Microsoft Visio **.* Type Library"を追加してあります。


初心者の質問ですいません。よろしくお願いします。

投稿時間:2007/08/09(Thu) 18:12
投稿者名:yama
Eメール:
URL :
タイトル:Re^2: 条件文で悩んでいます。
旅人Aさん、アドバイスありがとうございました。
魔界の仮面弁士さん、度々のアドバイス、ご指導ありがとうございます。
右も左も分からず我流でVBやり始めたもので多々不的確な部分ありますが
勉強しつつコツコツとやって行きますので今後とも宜しくお願いいたします。
ありがとうございました。

投稿時間:2007/08/09(Thu) 17:53
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:Re^2: 条件文で悩んでいます。
> 現在下の様な記述でcsvに書き込んでいます。

Write / Input って、本来は CSV ファイル用の命令では無いですよ。

Boolean型や Date型の出力形式が特殊ですし、「"」を含んだデータの
取り扱いにも問題があるので、個人的にはあまりお奨めしません。
多少面倒でも、Print # ステートメントの方が融通は利くかと。


> For文を使ってスマートにしたいのですが可能でしょうか?
『Write #x, a, b, c』というコードは、
  Write #x, a,
  Write #x, b,
  Write #x, c
という 3 行にまたいで書くことができます。ループ処理時には良いかと。

投稿時間:2007/08/09(Thu) 17:30
投稿者名:旅人A
Eメール:
URL :
タイトル:Re^2: 条件文で悩んでいます。
> ついでにお聞きしたいんですが、
> 
> 現在下の様な記述でcsvに書き込んでいます。
> For文を使ってスマートにしたいのですが可能でしょうか?
> 
> OpenFileNum = FreeFile
> Open TargetFilePath(0) For Append As #OpenFileNum
> Write #OpenFileNum, frm_Input.Text1.Text, frm_Input.Text2.Text, _
>                     Name(0), Code(0), Count(0), Unit(0), Note(0), _
>                     Name(1), Code(1), Count(1), Unit(1), Note(1), _
>                     Name(2), Code(2), Count(2), Unit(2), Note(2), _
>                     Name(3), Code(3), Count(3), Unit(3), Note(3), _
>                     Name(4), Code(4), Count(4), Unit(4), Note(4), _
>                     Name(5), Code(5), Count(5), Unit(5), Note(5), _
>                     Name(6), Code(6), Count(6), Unit(6), Note(6), _
>                     Name(7), Code(7), Count(7), Unit(7), Note(7), _
>                     Name(8), Code(8), Count(8), Unit(8), Note(8), _
>                     Name(9), Code(9), Count(9), Unit(9), Note(9), _
>                     Name(10), Code(10), Count(10), Unit(10), Note(10), _
>                     Name(11), Code(11), Count(11), Unit(11), Note(11), _
>                     Name(12), Code(12), Count(12), Unit(12), Note(12), _
>                     Name(13), Code(13), Count(13), Unit(13), Note(13), _
>                     Name(14), Code(14), Count(14), Unit(14), Note(14)
> Close #OpenFileNum
> ぶら下がり連続質問ごめんなさい。

書き込む文字列を
Dim WriteString As String
とかで宣言しておいて、

For文で文字列を作成。(連結)
WriteStringは書き出すときだけ使うとかで。

投稿時間:2007/08/09(Thu) 15:58
投稿者名:yama
Eメール:
URL :
タイトル:Re: 条件文で悩んでいます。
ついでにお聞きしたいんですが、

現在下の様な記述でcsvに書き込んでいます。
For文を使ってスマートにしたいのですが可能でしょうか?

OpenFileNum = FreeFile
Open TargetFilePath(0) For Append As #OpenFileNum
Write #OpenFileNum, frm_Input.Text1.Text, frm_Input.Text2.Text, _
                    Name(0), Code(0), Count(0), Unit(0), Note(0), _
                    Name(1), Code(1), Count(1), Unit(1), Note(1), _
                    Name(2), Code(2), Count(2), Unit(2), Note(2), _
                    Name(3), Code(3), Count(3), Unit(3), Note(3), _
                    Name(4), Code(4), Count(4), Unit(4), Note(4), _
                    Name(5), Code(5), Count(5), Unit(5), Note(5), _
                    Name(6), Code(6), Count(6), Unit(6), Note(6), _
                    Name(7), Code(7), Count(7), Unit(7), Note(7), _
                    Name(8), Code(8), Count(8), Unit(8), Note(8), _
                    Name(9), Code(9), Count(9), Unit(9), Note(9), _
                    Name(10), Code(10), Count(10), Unit(10), Note(10), _
                    Name(11), Code(11), Count(11), Unit(11), Note(11), _
                    Name(12), Code(12), Count(12), Unit(12), Note(12), _
                    Name(13), Code(13), Count(13), Unit(13), Note(13), _
                    Name(14), Code(14), Count(14), Unit(14), Note(14)
Close #OpenFileNum
ぶら下がり連続質問ごめんなさい。

投稿時間:2007/08/09(Thu) 14:20
投稿者名:yama
Eメール:
URL :
タイトル:Re^5: 条件文で悩んでいます。
魔界の仮面弁士さん、y4yamaさん、回答ありがとうございました。

私も実は無い脳みそグルグル回してFor文内でファイルが1つ有ればカウントし、
そのカウント数とTargetFileCapacity + 1が同じであれば全てのファイルが揃った
(条件成立)となるものが出来ました。

y4yamaさんのと同じ方法でした。今から魔界の仮面弁士さんが作ってくれはった
制御文も動かしてみます。

琴さん、魔界の仮面弁士さん、y4yamaさんお手数お掛けしありがとうございました。
本当に助かりました。

投稿時間:2007/08/09(Thu) 14:09
投稿者名:y4yama
Eメール:
URL :
タイトル:Re^4: 条件文で悩んでいます。
> ファイルの存在確認に特化せずFor文やDo〜Loop文、If文等の組み合わせで
> 出来ないでしょうか?
> 実に今直面している問題を例にとってあげたのですが、今後もこの様な
> 「全ての条件が成立したら処理を実行する」制御が多々出てくると考えています。

同じyamaのヨシミで・・・
 Dim okCnt
For 〜〜
   If 条件がTrueなら okCnt=okCnt + 1
Next
If okCnt=望んでいる数 なら条件が成立した!

でも、簡単には、
Dim ngFlag = False
For 〜〜
   If 条件がFalseなら ngFlag=True
Next
If ngFlag = False なら条件が成立した!

て感じでどうでしょうか

投稿時間:2007/08/09(Thu) 14:03
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:Re^4: 条件文で悩んでいます。
If 文を何度もネストさせると、可読性は落ちてしまいますね。

> ファイルの存在確認に特化せずFor文やDo〜Loop文、If文等の組み合わせで
> 出来ないでしょうか?

できると思いますよ。内容によって細かい書き方は異なりますが、
配列やコレクションに入れておいて、ループで回すだけという点では一緒かと。


あと、最初の例であれば、『必要なファイルが揃った』ことを調査したいだけなので、
一個でも揃っていなければ、途中で調査を打ち切れることができるはずです。

'-------
 Dim notFound As Boolean
 notFound = False
 For r = 0 To TargetFileCapacity
  If Dir(TargetFilePath(r), attr) = "" Then
   notFound = True
   Exit For  'ファイルが存在していなければ調査を打ち切る
  End If
 Next
 If notFound Then
  MsgBox "揃ってなかった"
 Else
  MsgBox "必要なファイルが揃っていた"
 End If
'-------

投稿時間:2007/08/09(Thu) 13:49
投稿者名:yama
Eメール:
URL :
タイトル:Re^3: 条件文で悩んでいます。
琴さん回答ありがとうございます。

ファイルの存在確認に特化せずFor文やDo〜Loop文、If文等の組み合わせで
出来ないでしょうか?
実に今直面している問題を例にとってあげたのですが、今後もこの様な
「全ての条件が成立したら処理を実行する」制御が多々出てくると考えています。
もし宜しければFor、Do、If等の制御文の組み合わせで解決方をご教示頂けたら
幸いです。宜しくお願いいたします。
文章下手で申し訳ございません。

投稿時間:2007/08/09(Thu) 13:05
投稿者名:
Eメール:
URL :
タイトル:Re^2: 条件文で悩んでいます。
このサイトの左側メニューにあるサンプル

指定フォルダー以下の全ファイルを列挙
http://hanatyan.sakura.ne.jp/vbhlp/fso14.htm

を工夫すればできると思いますよ。
FileSystemObjectを使わなくてもDir関数で実現することもできます。

投稿時間:2007/08/09(Thu) 11:41
投稿者名:yama
Eメール:
URL :
タイトル:Re: 条件文で悩んでいます。
間違いに気づきました
>    If TargetFileOK(r) = True Then
>     If TargetFileOK(r + 1) = True Then
>      If TargetFileOK(r + 2) = True Then

このIf文のrは別の変数にしないとダメですね!!

投稿時間:2007/08/09(Thu) 11:29
投稿者名:yama
Eメール:
URL :
タイトル:条件文で悩んでいます。
皆様には大したことがないかも知れないですが、
昨々晩からず〜っと考えてても答えがでません。
ズバッとお答え頂きたく投稿させていただきました。

※やりたいこと
・数個のファイルの存在が全て確認できればある処理をしたいのですが
  ファイル数が毎回決まっていれば下記の様なものでもいいと思うのですが
 毎回ファイルの数が変わるので今回困っています。
 バカな私にはわかりません。どうかお助けください。
  
TargetFileCapacity:ファイルの数(数は不定)
TargetFilePath:ファイルの格納Path
TargetFileOK:ファイルの有無を判断する変数

For r = 0 To TargetFileCapacity
 RealTargetFileName(r) = Dir(TargetFilePath(r))
  If Len(RealTargetFileName(r)) > 1 Then
  TargetFileOK(r) = True

   If TargetFileOK(r) = True Then
    If TargetFileOK(r + 1) = True Then
     If TargetFileOK(r + 2) = True Then
          …
        MsgBox "必要なファイルが揃いました。", vbOKOnly, "ファイルが揃いました"
          …
     End If
        End If
      End If
    End If
Next

投稿時間:2007/08/07(Tue) 18:07
投稿者名:大魔神
Eメール:
URL :
タイトル:解決です。
おおおぉぉ!
サービスパック当ててなかったです(泣
即座にDLして確認した所、見事に解決していました。

大吉末吉さん有り難うございました。

投稿時間:2007/08/07(Tue) 16:48
投稿者名:みき
Eメール:
URL :
タイトル:Re^2: コモンダイアログ
> 
> 「コモンダイアログ」って「コモンダイアログコントロール」のことですよね?
> で、表示した時のボタンのキャプション(文字)の事ですよね?
> 普通、「保存」だと思いますが・・・
> 
> ひょっとして、コモンダイアログを「ShowOpenメソッド」で表示しているとか・・・
> もしそうなら、「ShowSaveメソッド」で表示してみてください。

すみません、初心者なので申し訳ございません
出来ました、ご親切にありがとうございました

投稿時間:2007/08/07(Tue) 16:36
投稿者名:大吉末吉
Eメール:
URL :
タイトル:Re: URLからソースコード取得
> ==============================
> Dim GetURL As String
> 
> GetURL = Text1.Text
> Text2.Text = Inet1.OpenURL(GetURL)
> ==============================
> 
> ↑これで自分の目的の事は出来ると思うのですが、拡張子がHTMLなどの場合は問題なく結果を得ることが出来るのですが、困った事に拡張子がHTML以外(PHPやCGI)などを指定した場合、最後まで取得できずに途中でソースが切れてしまいます。 
> どの拡張子でも同じ結果を得たいのですが自分の頭では無理みたいなのでご教授お願いします。

MSの技術情報を「OpenURL Inet」で検索すると、こういうのが見つかりますが・・・

「Visual Basic 6.0 SP4: Inet コントロールの OpenUrl メソッドが完全なファイルを返さない」
(http://support.microsoft.com/kb/232194/ja)

サービスパックは当ててますよね・・・

投稿時間:2007/08/07(Tue) 16:34
投稿者名:大吉末吉
Eメール:
URL :
タイトル:Re: コモンダイアログ
> プログラムで作ったデータをコモンダイアログを使って
> 保存したいと思います
> コモンダイアログのボタン「保存」にしたいのですが
> どうすれば、よろしいですか?

「コモンダイアログ」って「コモンダイアログコントロール」のことですよね?
で、表示した時のボタンのキャプション(文字)の事ですよね?
普通、「保存」だと思いますが・・・

ひょっとして、コモンダイアログを「ShowOpenメソッド」で表示しているとか・・・
もしそうなら、「ShowSaveメソッド」で表示してみてください。

投稿時間:2007/08/07(Tue) 16:20
投稿者名:みき
Eメール:
URL :
タイトル:コモンダイアログ
初めて投稿します
よろしくお願いいたします

プログラムで作ったデータをコモンダイアログを使って
保存したいと思います
コモンダイアログのボタン「保存」にしたいのですが
どうすれば、よろしいですか?

投稿時間:2007/08/07(Tue) 15:29
投稿者名:大魔神
Eメール:
URL :
タイトル:URLからソースコード取得
こんにちは、初めまして。

過去ログなどを調べさせて頂きましたが、キーワードに何を入れて良いやら・・・。
それで、一通り見ましたが質問させて下さい。

==============================
Dim GetURL As String

GetURL = Text1.Text
Text2.Text = Inet1.OpenURL(GetURL)
==============================

↑これで自分の目的の事は出来ると思うのですが、拡張子がHTMLなどの場合は問題なく結果を得ることが出来るのですが、困った事に拡張子がHTML以外(PHPやCGI)などを指定した場合、最後まで取得できずに途中でソースが切れてしまいます。 どの拡張子でも同じ結果を得たいのですが自分の頭では無理みたいなのでご教授お願いします。

投稿時間:2007/08/07(Tue) 14:04
投稿者名:MOONEY
Eメール:
URL :
タイトル:Re^2: テキストボックス上にペーストした文字列の属性チェック
すみません。お返事が大変遅れてしまいました。
方法としてはいくつかあるようですね。参考にさせて頂きます。

どうもありがとうございました。

投稿時間:2007/08/06(Mon) 19:54
投稿者名:kenken
Eメール:
URL :
タイトル:Re^2: 定数で定義している表記について
> > VB6.0でOSXPですが以下のような定数宣言がありました。
> > しかし、この定数の設定値「&H2000」の意味が分からないのです。
> 
> > Public Const TEISUU = &H2000    
> 
> とりあえず、ヘルプ(MSDNライブラリ)で「コーディングの基礎」のページの
> 「数値表記法」を読んでみてください。


ご教授ありがとうございました。
はなちゃんからの回答で解決致しました。

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

投稿時間:2007/08/06(Mon) 19:54
投稿者名:kenken
Eメール:
URL :
タイトル:Re^2: 定数で定義している表記について
> > VB6.0でOSXPですが以下のような定数宣言がありました。
> > Public Const TEISUU = &H2000    
> > しかし、この定数の設定値「&H2000」の意味が分からないのです。
> 
> ユーザ定義の定数のようなので、意味は、作った人に聞くか、どのような
> 場面で、どのように使われているのかが解らないと答えられないのでは。
> 
> 
> &H2000 (16進数表記) 10進数表記では、8192 を聞いているのではないですよね。
>  

ありがとうございます。言葉足らずですみませんでした。
上記の通りで解決しました。ありがとうございました。

投稿時間:2007/08/06(Mon) 17:24
投稿者名:花ちゃん
Eメール:
URL :
タイトル:Re: 定数で定義している表記について
> VB6.0でOSXPですが以下のような定数宣言がありました。
> Public Const TEISUU = &H2000    
> しかし、この定数の設定値「&H2000」の意味が分からないのです。

ユーザ定義の定数のようなので、意味は、作った人に聞くか、どのような
場面で、どのように使われているのかが解らないと答えられないのでは。


&H2000 (16進数表記) 10進数表記では、8192 を聞いているのではないですよね。
 

投稿時間:2007/08/06(Mon) 16:51
投稿者名:kenken
Eメール:
URL :
タイトル:Re^2: 定数で定義している表記について
> > VB6.0でOSXPですが以下のような定数宣言がありました。
> > しかし、この定数の設定値「&H2000」の意味が分からないのです。
> 
> > Public Const TEISUU = &H2000    
> 
> とりあえず、ヘルプ(MSDNライブラリ)で「コーディングの基礎」のページの
> 「数値表記法」を読んでみてください。

ありがとうございます。
今手元にMSDNがございませんので、明日調べてみます。

投稿時間:2007/08/06(Mon) 13:13
投稿者名:大吉末吉
Eメール:
URL :
タイトル:Re: 定数で定義している表記について
> VB6.0でOSXPですが以下のような定数宣言がありました。
> しかし、この定数の設定値「&H2000」の意味が分からないのです。

> Public Const TEISUU = &H2000    

とりあえず、ヘルプ(MSDNライブラリ)で「コーディングの基礎」のページの
「数値表記法」を読んでみてください。

投稿時間:2007/08/06(Mon) 13:05
投稿者名:kenken
Eメール:
URL :
タイトル:定数で定義している表記について
初めて利用させていただきます。

VB6.0でOSXPですが以下のような定数宣言がありました。
しかし、この定数の設定値「&H2000」の意味が分からないのです。

知識不足ですみませんが、ご教授いただければ幸いです。

【実ソース】
Public Const TEISUU = &H2000    

投稿時間:2007/08/06(Mon) 12:33
投稿者名:花ちゃん
Eメール:
URL :
タイトル:Re: ファイルを読み込み、Imageに表示させたい
> 基本的な質問で申し訳ありませんが、

大学の課題なら少しは自分でやりましょう。基本的な事ならなおさら。
やりたい事≠やろうとしている事≠質問内容 のような。
(これでは、作って下さいに等しいかと、質問するならピンポイントで)

投稿時間:2007/08/06(Mon) 10:56
投稿者名:ゆか
Eメール:
URL :
タイトル:ファイルを読み込み、Imageに表示させたい
初めて投稿します、よろしくお願いします。
開発環境は6.0です。

VBレスキューで
『フォルダ内のファイル名を読み込む(Dir 関数の使用例)』
方法を見つけてすごくうれしいのですが、
この場合、Textに表示させるように記述していますが、私が探している方法が
Form1のコマンドボタンをクリックするとForm2のimageに表示する方法なのです。


For i = 1 To intKen
    Text1.Text = Text1.Text & strMyFile(i) & vbCrLf
  Next i
  Text1.Text = Text1.Text & vbCrLf & _
          " === 全部で " & intKen & " ファイルありました。==="

の所を変えると出来ると思うのですが、どうしてもわかりません。

基本的な質問で申し訳ありませんが、どなたかわかる方いらっしゃればお願いします。

投稿時間:2007/08/06(Mon) 10:25
投稿者名:3時間放置のポテチ
Eメール:
URL :
タイトル:Re^9: ふりがなの取得の仕方って?
お礼のレスが遅れて申し訳ありません。徹夜で作業して提出はできましたが風邪が・・・

Starfishさんレスありがとうございます。
>  たとえば、以下を繰り返し入力してみてください。
>  草g 剛(クサナギ ツヨシ)
>  森田 剛(モリタ ゴウ)
草g 剛(クサナギ ゴウ)
森田 剛(モリタ ツヨシ)
になってました(笑)
しかし課題の項目としては変換ができるかという課題でしたので、
突っ込まれる事なくスルーされました。

また機会があれば質問させてもらいます。

投稿時間:2007/08/05(Sun) 13:35
投稿者名:ジョニー
Eメール:
URL :
タイトル:Re^2: エラーコード
> > エラーコード表はどこを見れば分かりますか?
> 
> 一般用掲示板の VB6.0でエラー内容を調べるには をご覧下さい。
> 
> 
>  ファイルは既に開かれています。(Error 55)

いつもお世話になります
ありがとうございました

投稿時間:2007/08/05(Sun) 12:52
投稿者名:花ちゃん
Eメール:
URL :
タイトル:Re: エラーコード
> エラーコード表はどこを見れば分かりますか?

一般用掲示板の VB6.0でエラー内容を調べるには をご覧下さい。


 ファイルは既に開かれています。(Error 55)

投稿時間:2007/08/05(Sun) 12:17
投稿者名:ジョニー
Eメール:
URL :
タイトル:エラーコード
いつもお世話になります

ファイルオープン時にエラーコード=55が出ました
エラーコード表はどこを見れば分かりますか?

投稿時間:2007/08/03(Fri) 21:54
投稿者名:tea
Eメール:
URL :
タイトル:再考してみます。
> KGさん、回答本当にありがとうございます。

どうもコードを書いている位置にも問題があるようなので
しばらく再考してみたいと思います。

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

投稿時間:2007/08/03(Fri) 18:28
投稿者名:tea
Eメール:
URL :
タイトル:Re^2: コンボボックスで"連番"とした場合にMSFlexGridに4から順に番号をつけたいのですが
KGさん、回答本当にありがとうございます。
インスタンスは下記で作成してると思うんですが・・・
独学でやってきましたが、いまだに初心者に毛が生えたようなレベルなので
詳しくご教授してください。
どうか、よろしくお願いします。

Private Property Get fghPlayers(ByVal TeamIndex As Long) As FlexGridHelper
    'もし、0の場合'
    If TeamIndex = 0 Then
        'fghPlayers0クラスにfghPlayersインスタンスを格納'
        Set fghPlayers = fghPlayers0
    Else
        'fghPlayers1クラスにfghPlayersインスタンスを格納'
        Set fghPlayers = fghPlayers1
    End If
End Property


> そのオブジェクトが宣言されてはいるが、インスタンスがない場合によく見るエラーですね。
> 
> fghPlayers
> 
> は見たところどこにも宣言されていないようですが、
> どこで宣言して、どこでインスタンスを作成しているのでしょうか?

投稿時間:2007/08/03(Fri) 17:46
投稿者名:KG
Eメール:
URL :
タイトル:Re: コンボボックスで"連番"とした場合にMSFlexGridに4から順に番号をつけたいのですが
そのオブジェクトが宣言されてはいるが、インスタンスがない場合によく見るエラーですね。

fghPlayers

は見たところどこにも宣言されていないようですが、
どこで宣言して、どこでインスタンスを作成しているのでしょうか?

投稿時間:2007/08/03(Fri) 16:51
投稿者名:tea
Eメール:
URL :
タイトル:コンボボックスで"連番"とした場合にMSFlexGridに4から順に番号をつけたいのですが
また質問させていただきます。
コンボボックスで"連番"を意味する"連"を選択した場合に選手氏名欄に
記載してある人数分だけMSFlexGridのeGridUniformnumberという列に自
動的に最初の番号を4にして以降は順に番号をつけたいのです。
選手の最低人数は5名、最大人数は18名ですがいつも18名とは限り
ません。
下記に自分で書いてみたコードを乗せますが、
fghPlayers(TeamIndex).Target.TextMatrix(ixPlayer, eGridUniformnumber) = 4 + m
でエラーが出て「オブジェクト変数またはWithブロック変数が設定されて
いません。」と出ます・・・。

教えてください。
どうかよろしくお願いします。

Private Sub UserControl_Initialize()
    'ローカル変数宣言'
    Dim ixTeam As Long
    Dim ixPlayer As Long
    Dim i As Long
  '連番作業の為に追加---    
    Dim TeamIndex As Long
    Dim m As Integer
    m = 0
  '---------------------
    '' 本来は、UserMode でしか動かさないコードもある。
    '' しかし、なぜか UserControl.Ambient.UserMode が機能しないのでエラー無視で対処している。
    '' UserControl_Terminate も同様。
       
    '' 未来を指定できないように。
    dtpTournamentDate.MaxDate = Now
    
    '' ヘルパーの実行開始。
    Set fghPlayers0 = New FlexGridHelper
    Set fghPlayers1 = New FlexGridHelper
    For ixTeam = 0 To 1
        With teamControl("cboEditor", ixTeam)
            '"連番"という意味の"連"を先頭に加える。---
            .AddItem "連"
            .ListIndex = 0
            
            'もしcboEditorで一番先頭の選手が連番の"連"を選択した場合には選手
      '氏名欄にある人数分だけMSFlexGridの先頭番号を4からはじめて以降は
            '順に番号をつける。
            '最大選手人数はA&Bチームともに18名だが、いつも18名とは限らない。
            If .ListIndex = 0 Then
                '選手氏名を1番から最大人数まで
                For ixPlayer = 1 To bbPlayerMax
                    'はじめの4に+1を加算していく
                    For m = 0 To 18
                        With Game.Team(TeamIndex).Player(ixPlayer)
                            '背番号'
                            fghPlayers(TeamIndex).Target.TextMatrix(ixPlayer, eGridUniformnumber) = 4 + m
                        End With
                    Next
                Next
            End If
            '-----------------------------------------
            '繰り返し処理:1から99
            For i = 1 To 99
                '追加'
                .AddItem CStr(i)
            Next
        End With
          
        With fghPlayers(ixTeam)
            '初期化'
            .Init teamControl("grdPlayers", ixTeam), teamControl("txtEditor", ixTeam)
            'ユニフォームナンバー'
            .SetEditorFromControl eGridUniformnumber, teamControl("cboEditor", ixTeam)
            'キャプテン選択
            .SetColStatuses eGridCaption, Array(sPiCaptainMark, "")
            'スタメン選択
            .SetColStatuses eGridSM, Array(sPiSMMark, "")
            .NextDirectionToRight = False
            '
            grdPlayers_Design .Target
        End With
    Next
    
    '' スターティングメンバーのクリック順を、現在のものを適用。
    On Error Resume Next
    For ixTeam = 0 To 1
        'コレクション型のインスタンスが生成されてオブジェクトに格納'
        Set nPiSMClickOrder(ixTeam) = New Collection
        With Game.Team(ixTeam)
            '繰り返し処理:1から最大人数'
            For ixPlayer = 1 To bbPlayerMax
                'もし、選手がスタメンの場合'
                If .Player(ixPlayer).IsStartingMember Then
                    '追加'
                    nPiSMClickOrder_Add ixTeam, ixPlayer
                    i = i + 1
                End If
            Next
        End With
    Next
End Sub

投稿時間:2007/08/03(Fri) 11:56
投稿者名:tea
Eメール:
URL :
タイトル:出来ました。
魔界の仮面弁士さん、Edwardさん、回答本当にありがとうございます。
Edwardさんにいただいた回答を使わせていただきます。
ありがとうございました。

> With teamControl
>     .AddItem "連番"    '<--
>     .ListIndex = 0     '<--
>     '繰り返し処理:1から99'
>     For i = 1 To 99
>         '追加'
>         .AddItem CStr(i)
>     Next
> End With

投稿時間:2007/08/03(Fri) 11:08
投稿者名:Edward
Eメール:
URL :
タイトル:Re: "連番"と1から99までをコンボボックスに表示させるには?
> コンボボックスで1から99までの数字を選択して表示させるようにしています
> が、この1から99までの表示の1の前に"連番"という文字を加えたいのです。

こうゆう事?

With teamControl
    .AddItem "連番"    '<--
    .ListIndex = 0     '<--
    '繰り返し処理:1から99'
    For i = 1 To 99
        '追加'
        .AddItem CStr(i)
    Next
End With

投稿時間:2007/08/03(Fri) 10:32
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:Re: "連番"と1から99までをコンボボックスに表示させるには?
> この1から99までの表示の1の前に"連番"という文字を加えたいのです。
単純なところでは、

>         .AddItem CStr(i)
これを、  .AddItem "連番" & CStr(i)   にするとか。

投稿時間:2007/08/03(Fri) 09:55
投稿者名:tea
Eメール:
URL :
タイトル:"連番"と1から99までをコンボボックスに表示させるには?
またお世話になります。

コンボボックスで1から99までの数字を選択して表示させるようにしています
が、この1から99までの表示の1の前に"連番"という文字を加えたいのです。
どうしたら良いのでしょうか?
コードは下記になります。
どうか教えてください。
よろしくお願いします。

With teamControl("cboEditor", ixTeam)
  '繰り返し処理:1から99'
    For i = 1 To 99
      '追加'
        .AddItem CStr(i)
    Next
End With

投稿時間:2007/08/02(Thu) 15:44
投稿者名:ricky
Eメール:
URL :
タイトル:Re^2: 受信メールを送信相手により指定フォルダにコピーする
> Google で[outlook VBA] で検索して1番最初にヒットした下記のサイトのサンプルを
> 使って出来なかったでしょうか?
> 
>   http://www2s.biglobe.ne.jp/~SATSYS/zzz.htm
> 
> の中の「自動仕分けをVBAで行う(受信トレイのメールを別のフォルダに
> 移動し差出人ごとにフォルダ分けする)」等々
> 
お教えいただいたものを見ることで無事できました。
ありがとうございました。

投稿時間:2007/08/02(Thu) 08:13
投稿者名:花ちゃん
Eメール:
URL :
タイトル:Re: 受信メールを送信相手により指定フォルダにコピーする
Google で[outlook VBA] で検索して1番最初にヒットした下記のサイトのサンプルを
使って出来なかったでしょうか?

  http://www2s.biglobe.ne.jp/~SATSYS/zzz.htm

の中の「自動仕分けをVBAで行う(受信トレイのメールを別のフォルダに
移動し差出人ごとにフォルダ分けする)」等々



 

投稿時間:2007/08/02(Thu) 07:53
投稿者名:ricky
Eメール:
URL :
タイトル:受信メールを送信相手により指定フォルダにコピーする
VB6.0を使用しています。
メールソフトはoutlookを使用しています。

VBでは、ACCESSデータベース、Oracleデータベース用の
ソフトを作成した経験があります。
しかし、outlook等メール系のソフトを作成するのは初めてです。

受信したメールの中で、Aさんからきたメールのみ
以下のbunsyoフォルダに、メールの文書を(テキストファイル等)
tenpuフォルダに、添付ファイルを保存したいと思うのですが
そのようなものを作成するのは可能なのでしょうか?
また、どのように作成すればよいのか、ヒント等でもかまいませんので
どなたかご存じの方、ご教授下さるようよろしくお願いいたします。

c:\mail\2007\bunsyo
c:\mail\2007\tenpu

投稿時間:2007/08/01(Wed) 15:21
投稿者名:神威
Eメール:
URL :
タイトル:Re^4: マクロ付きExcelの保存 Excel2007
Save As メソッドで第2引数を設定したところ
マクロが残った形で保存することができました。

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

投稿時間:2007/08/01(Wed) 14:45
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:Re^3: マクロ付きExcelの保存 Excel2007
> Excelマクロ有効ブック形式で保存するということでしょうか?
いえ、それ以外の形式も選択できますよね。
単純に xls 形式で良いと思いますけど。マクロも記録できますし。

> この形式で保存をした場合、Excel2007ではファイルを参照できると思うのですが
> Excel2003では参照できなくなるのではないでしょうか?
互換性パックが用意されているので、2003 であっても xlsx / xlsm を参照できますよ。
まぁ、xls で保存するのが無難だとは思いますけれども。

投稿時間:2007/08/01(Wed) 14:03
投稿者名:神威
Eメール:
URL :
タイトル:Re^2: マクロ付きExcelの保存 Excel2007
> > Excel2007を使用している端末ではマクロが消えてしまいます。
> 
> SaveAs の第二引数を、明示的に指定してみてください。
> 
> これは、Excel 2007 でいうところの
> [Office ボタン]-[名前を付けて保存]-[その他の形式] メニューから、
> ファイルの種類を指定することに相当します。

ご返信ありがとうございます。

魔界の仮面弁士さんのご指摘いただいた方法ですと、
Excelマクロ有効ブック形式で保存するということでしょうか?
この形式で保存をした場合、Excel2007ではファイルを参照できると思うのですが
Excel2003では参照できなくなるのではないでしょうか?
保存したファイルをExcel2007,Excel2003双方から参照したいのですが
その場合は、この方法でできるのでしょうか?
よろしくお願いいたします。