
|
|
|
|
|
|
|
|
Copyright(C)1999-2006
結城圭介。,
All rights reserved.

 
|
|
|
|
|
|
この掲示板では、主にVBAプログラミングに関する疑問や質問などの話題を扱っています。当サイトで紹介しているVBAプログラミングや、その他の関連するVBAプログラミングに関する質問があれば、気軽にカキコしてください。基本ルールは「質問する側はその内容を明確に」、「答える側は困っている方の気持ちをくみ取って」です。難問も、みんなでかかれば、怖くない!?
| ・ | この掲示板はマルチスレッド式の掲示板です。VBA質問掲示板の利用規約の範囲内であれば誰でも自由にスレッド作成・返信・閲覧を行なうことができます。なお、VBA質問掲示板の利用規約は、スレ作成・記事投稿前に必ずお読み下さい。
|
| ・ | 新規にスレッド(話題)を作るときは、すぐ下にある新規スレッド作成をクリックし、新規専用フォームから新規記事を投稿してください。
|
| ・ | 既存のスレッドに返信を行なう場合には、各スレッドの一番下にある返信専用フォームより投稿してください。
|
| ・ | 質問毎にスレッドを作成してください。ただし、回答に対する質問はスレッド内への投稿してOKです。なお、1スレッド当りの記事数は500件で、これを超えると過去ログへ移動します。
|
| ・ | 名前の後ろへ半角#と任意の半角アルファベットor数字を加えると、名前の後ろに暗号化された10桁のIDが付加されます。
|
| ・ | 名前と10桁のID(トリップ)の間にある記号は「★…管理人(結城) ●…サブ管理人 ◆…一般ユーザ」を意味します。
|
| ・ | 管理人(結城)のレスは諸般の事情により遅いです。ご了承くださいm(_ _)m
|
|
|
|
|
|
|
【新作】実践COBOLプログラミング入門
ウチのサイトはVBA・VBScriptが中心のサイトですが、管理人は実はCOBOLer(コボラー=COBOL使いの意味)でもあります。その流でCOBOL本も書いてみました。COBOLを勉強したい方、よろしくです!
最速攻略 Excel VBA サンプル大全集
Excel VBAプログラマーにはサンプル集として、VBAを使わないExcelユーザーには便利アドイン(ツール)集として幅広く使える上、VBAサンプルやアドインのほとんどがExcel 97, 2000, 2002, 2003と幅広く対応!さらに、番外編のCD-ROM収録の綴じ込み付録にも、便利ツール・汎用クラスモジュールからゲームまでてんこ盛り!
|
|
|
|
|
|
|
|
|
|
- [1] るな - 2008/07/23 15:07
- 選択しているセルにコントーロールボックスのチェックボックスを貼り付けるマクロを作成したいのですが教えて頂けないでしょうか?
|
|
|
|
|
|
|
|
|
|
- [1] kusu - 2008/07/22 13:50
- 初めてVBAをはじめるんですが、まずは何からやればいいのかよく分かりません。なにかアドバイスがあればご指導お願いいたします。
- [2] YU-TANG - 2008/07/22 15:27
- こんにちは、YU-TANG です。
> 初めてVBAをはじめるんですが、まずは何からやればいいのかよく分かりません。なにかアドバイスがあればご指導お願いいたします。
月並みですが、書店に行って自分に合いそうな入門書を買いましょう。 入門書は、まさに「何からやればいいのかよく分か」らない方向けに、 何をやったらいいかプロの方がレクチャーしてくれる本です。 こちらを主宰していらっしゃる結城さんの著書にも言えることですが、 良い入門書には、間違いなくお金を払ってでも読む価値があると私は 思います。 Amazon で通販とかでもいいですが、本と人との相性というのも有るので、 可能であれば中身をあるていどパラ読みできた方がベターです。
あと、これも月並みですが、もし周りに訊ける人が居れば、訊きながら やってみてください(相手の方の迷惑にならない範囲で、ですが)。 文章では伝わりづらくても、目の前で実際に操作しているのを見ていると 簡単に理解できるということは多々あります。
なんか「学問に王道なし」みたいな内容になりましたが、単に自分が アホだから効率のいい学習法を知らないだけかもしれないです。 いろいろ意見がある中にこういういのもある、くらいに思っておいて ください。
それでは。
- [3] kusu - 2008/07/22 16:06
- 早速お返事いただきありがとうございます。早速書店に行って色々みてみようと思います。また、なにか分からないことがあったときはアドバイスお願い致します。(喜)
|
|
|
|
|
|
|
|
|
|
- [1] とび - 2008/07/19 22:07
- 下記のマクロにおいてD列にデータがある場合、
全てに同様にマクロを走らせたいのですが、 どのようにすればよろしいでしょうか? よろしくお願いします。
Const keta As Long = 50 Dim s As Variant Dim i As Long, j As Long, k As Long Dim v() As Variant s = Split(Range("D1").Value, vbLf) k = 0 For i = 0 To UBound(s) For j = 1 To Len(s(i)) Step keta ReDim Preserve v(k) v(k) = Mid$(s(i), j, keta) k = k + 1 Next Next Range("D1").Value = Join(v, vbLf)
- [2] YU-TANG - 2008/07/20 19:50
- こんばんは、YU-TANG です。
> 下記のマクロにおいてD列にデータがある場合、 > 全てに同様にマクロを走らせたいのですが、
Dim i As Excel.Range For Each i In Union([D:D].SpecialCells(xlCellTypeConstants), _ [D:D].SpecialCells(xlCellTypeFormulas)) ' ここで処理したいサブルーチンを呼ぶ ' 例) i.Value = hoge(i.Value) Next
…みたいな。 D 列に数式が有り得ないなら、xlCellTypeFormulas を Union する 必要はありません。念のため。
それでは。
- [3] とび - 2008/07/21 16:51
- YU-TANGさん
お忙しい中、ありがとうございます。
|
|
|
|
|
|
|
|
|
|
- [1] キム・ミンチ - 2008/07/21 07:34
- 講義の宿題で7×7の魔方陣をVBEで解いてこいといわれました。
しかしながら自分のスキルではどうにもなりませんでした。
自分はIFやDim等までしか習っていません。 課題の注意点としては
1から49までの数値を検出 「1」は1行目の中央(4列目)に書き出す 基本的に、数値の書き出す順番は斜め上に移動 また、書き込む数値を「7」で割った場合の余りが「1」の時 書き込みの場所は下方向に移動する。
枠をはみ出した場合 上にはみ出した(行)の場合 7行目に 右にはみ出した(列)の場合 1列目に それぞれ移動
以上のような条件でエクセルのVBEを用いて解きたいのですが、どうにも分かりません。 心優しき方は教えていただけると幸いです。 よろしくお願いします。
|
|
|
|
|
|
|
|
|
|
- [1] TAMA - 2008/07/17 16:36
- 仕事上、あるブックを開いてcalculateイベントを実行しているのですが、
これと平行して違うブックでcalculateイベントを実行したときに両方の計算 するタイミングが重複した場合、計算が遅くなったりすることはありますでし ょうか?一応、
Sub 計算2()
Dim myDate As Date myDate = DateValue(Now()) Application.OnTime TimeValue("03:00:00") + (myDate), "計算" Application.OnTime TimeValue("03:15:00") + (myDate), "計算"
End Sub
のようにしてかぶらないようにこちらから指定する方法を考えたのですが、 もし、ご存知の方がいらっしゃいましたら、お教え願えませんでしょうか。お 願いします。
- [2] TAMA - 2008/07/19 21:13
- すみません。会社の上司に聞いたら人の認識できないくらいの速さで計算されるとのことで、解決しました。
失礼いたしました。
|
|
|
|
|
|
|
VBScriptでIEとIEコンポーネントブラウザの判別の仕方
|
|
|
|
|
- [1] いし - 2008/07/17 20:25
- VBScriptで、
IEの右クリックから呼び出した場合と、 IEコンポーネントブラウザの右クリックから呼び出した場合を、 見分ける方法について教えて下さい。
navigator.appnameやnavigator.useragentは、 IEコンポーネントブラウザから呼び出した場合でも、 IEそのものに成ってしまって、区別出来ないので、、、
どうぞよろしくお願い致します。
- [2] YU-TANG - 2008/07/20 19:21
- こんばんは、YU-TANG です。
> VBScriptで、 > IEの右クリックから呼び出した場合と、 > IEコンポーネントブラウザの右クリックから呼び出した場合を、 > 見分ける方法について教えて下さい。
ないと思いますが…。
そもそも、なぜそのようなことをしたいのでしょうか。 自分の感覚だと、Web ページ内からコンテナを識別する必要がある 状況というのは、よほど特殊というか、ちょっと想像が付かないです。 IE も Web Browser コントロールも、同じレンダリング エンジンを ラッピングしているだけですから、Web ページ内から見たときに 違いが何も無いのが当然なわけで、違いが無いならふつうはそれを 気にする必要も当然無いはずなのですが。
何となく手段を間違っている気がしますので、いったい何のために そのような手段を取ろうと思ったのか、その辺を明らかにすれば、 もっと単純で現実的な代替手段があるかもしれません(ないかも しれませんが)。
それでは。
|
|
|
|
|
|
|
|
|
|
- [1] さとる - 2008/07/17 11:28
- 現在、VBAを利用してリモートサーバにFTP接続を行い、リモートサーバ上のファイルをダウンロードする段階でつまづいてます。
・問題点 ファイルをダウンロードしないで、ファイルが消えていく…サーバのログからして、FTP接続は正常に行えています。
・ソースの一部 …省略… Sub prcFTPDownLoadSample()
Dim lngRC As Long lngRC = fcInternetOpen
If lngRC = 0 Then
lngRC = fcFTPConnect("192.168.***.***", "****", "****")
If lngRC = 0 Then Call fcFTPGetFile("/work/test.txt" _ , "C:\test.txt" _ , FTP_TRANSFER_TYPE_ASCII) Else MsgBox ("失敗しました。") End If End If
Call fcFTPDisConnect Call fcInternetClose MsgBox ("処理が終了しました。") End Sub
Function fcFTPGetFile(dRmt As String, dLc As String, dMd As Long) As Boolean
fcFTPGetFile = FtpGetFile(lngFtpHnd _ , dRmt _ , dLc _ , False _ , FILE_ATTRIBUTE_NORMAL _ , dMd + INTERNET_FLAG_RELOAD _ , 0)
End Function …省略…
VBAを始めたばかりの初心者ですがご教授いただけますようお願いいたします。
- [2] YU-TANG - 2008/07/20 19:07
- こんばんは、YU-TANG です。
> ・問題点 > ファイルをダウンロードしないで、ファイルが消えていく
どこからでしょうか? サーバからファイルが消えるのか、クライアントにあるファイルが上書き されずに消えるのか、分かりませんが。
> ・ソースの一部 > …省略…
省略されると検証の仕様が無いです。
たとえば定数の宣言漏れが原因だったりしても、これでは元のコードでは きちんと宣言されていて、転記時に省略されただけなのか、元のコードにも 無いのか、エスパーさん以外にはまったく判別がつきません。
まず結城さんのサンプル通りの単純なソースで動くことを確認してみては いかがですか。それで動くなら、いま作っているコードにそれと違う部分が 必ずあるはずで、そこに問題があることが容易に推測できます。 逆にサンプルどおりで動かないなら、環境依存か単純なパラメータ間違い かもしれません。
それでは。
|
|
|
|
|
|
|
|
|
|
- [1] koji - 2008/05/26 22:23
- すみません、質問が2点あります。
1. excel 2003以前の場合、Shiftを長押ししてファイルをダブルクリックすると、マクロの実行を中止して開く事が出来ますが、excel 2007の場合はこの方法だとマクロを中止する事が出来ません。 どのようにすれば、excel 2007でも同じようにマクロの実行を中止出来るのかどなたか教えてください。
2. excel 2003以前の場合、以下のような構文だと印刷プレビューのメニューバーで[閉じる]や[ファイル]→[印刷]が利用出来たのですが、excel 2007ではUIリボンの印刷プレビューメニューが表示されず、なおかつexcel自体が動かなくなってしまいます。 ただし、画面の更新をしない部分の構文を消すと印刷プレビューメニューは表示されます。でもこの場合、必要以上に印刷対象のシートに移動してしまいます。 画面の更新をしない構文を生かして、UIリボンの印刷プレビューメニューも生かす方法をどなたか教えてください。
------------------------------------------------ 「オープニング」シートにユーザーフォームを表示させて、印刷ボタンを押した場合の構文
Sub 印刷()
' 画面を更新しないようにする Application.ScreenUpdating = False
Sheets("用紙").Select X = MsgBox("用紙を印刷プレビューしますか?", 1 + 32, "印刷プレビュー") Select Case X Case 1 ActiveWindow.SelectedSheets.PrintPreview End Select
Sheets("オープニング").Select Range("H17").Select
' 画面を更新できるようにする Application.ScreenUpdating = True
End Sub ------------------------------------------------
どうか宜しくお願いします。
- [2] おせっかい - 2008/06/20 08:51
- 1.に関してですが、プレビューでとまったときに、マクロを中止するのではなく、プレビューを中止するには、F4とALTキーを押すとプレビューが閉じて、マクロが動きます。
2.については、私も色々と試してみましたが、PrintPreviewの構文の前後をApplication.ScreenUpdating = True とApplication.ScreenUpdating = Falseではさんで対処しました。きれいな対処法ではありませんが、参考になれば
- [3] koji - 2008/07/16 08:29
- おせっかいさん、返事が遅くなってすみません。m(__)m
PrintPreviewの構文の前後をはさむで解決いたしました。 ありがとうございました。
|
|
|
|
|
|
|
|
|
|
- [1] ぱんやしゃん - 2008/07/14 11:43
- 単語の意味がわからないんです。・・・
教えてください!!
こんなのです↓ 「Selection」とかー 「ShapeRanga」とかー 「ScaleWidth」とかです お願いします 教えてください!!
- [2] kanabun - 2008/07/14 17:46
- > 「Selection」とかー
> 「ShapeRanga」とかー > 「ScaleWidth」とかです コード上の 分からない単語のうえにをマウスでポイントしてから、 [F1]キーを押してください。ヘルプが表示されます。 説明をよんでも分からないことがあったら、分からない部分を 掲示板で質問してください。 ただし、 > ShapeRanga はスペルが正しくないので、[F1]キーを押す以前に ShapeRangeに 修正しておいてください。
[F1]キーを押してもヘルプが起動しないときはOfficeCDから ヘルプをインストールしてください。
|
|
|
|
MT-BOARD v0.5
Copyright (C) Kent Web 2002
|
|