- 1 名前:デフォルトの名無しさん [2017/05/16(火) 08:24:45.78 ID:iIGA/64l0.net]
- !extend:checked:vvvvv:1000:512
スレ立ての際は一行目に !extend:checked:vvvvv:1000:512 と入れてスレ立てして下さい ExcelのVBAに関する質問スレです コード書き込みや作成依頼もOK ※前スレ Excel VBA 質問スレ Part47 [無断転載禁止]©2ch.net echo.2ch.net/test/read.cgi/tech/1489557874/ ※関連スレ VBAなんでも質問スレ Part2 echo.2ch.net/test/read.cgi/tech/1432173164/ Access VBA 質問スレ Part1 echo.2ch.net/test/read.cgi/tech/1328536426/ Excel総合相談所 125 echo.2ch.net/test/read.cgi/bsoft/1481369538/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
- 51 名前:デフォルトの名無しさん mailto:sage [2017/05/18(木) 15:34:33.70 ID:ZtOQ2Qac0.net]
- まずは実行してみたらどうだ
- 52 名前:デフォルトの名無しさん mailto:sage [2017/05/18(木) 17:11:10.34 ID:d+oDyp660.net]
- Private Sub Worksheet_Change(ByVal Target As Range)
ここに、Subの処理を定義する End Sub Select Case Target.Address ここに、Caseの処理を定義する End Select Select Case Target.Address // Target.Address が、"$A$1"なら Case "$A$1" // Target.Value が数値ではない、または、空文字列なら、Subを抜ける If Not IsNumeric(Target.Value) Or Target.Value = "" Then Exit Sub // copy Range("B1:B9").Copy Range("B2") // 代入 Range("B1").Value = Range("A1").Value // 選択? Target.Select End Select
- 53 名前:デフォルトの名無しさん mailto:sage [2017/05/18(木) 19:06:48.56 ID:hKe3x/Mw0.net]
- >>48
ugokanai kedo A1セルの中身が数字に変わった場合、 B1:B9をB2:B10にコピーペースト B1をA1の内容にする
- 54 名前:デフォルトの名無しさん mailto:sage [2017/05/18(木) 19:21:07.71 ID:f5T5khCgr.net]
- >>51
A1を選択 が抜けてる
- 55 名前:デフォルトの名無しさん mailto:sage [2017/05/18(木) 22:27:14.87 ID:EwzTzSyyM.net]
- マウスポインターの移動量かマウスのスクロール量を検知って出来ますか?
- 56 名前:デフォルトの名無しさん mailto:sage [2017/05/1
]
- [ここ壊れてます]
- 57 名前:8(木) 23:31:41.56 ID:fbyfCIXE0.net mailto: form上の話ならMouseMoveイベント使えばなんとかなるんじゃね?
form以外でならwin32api(GetCursorPosとか)を駆使すれば [] - [ここ壊れてます]
- 58 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 12:10:12.11 ID:Hh88K1uA0.net]
- 最新版のExcelで、ファイルを開いた直後にだけコンパイルエラーが出るようになったから絶対更新しないほうがいいぞ
エラーが出るのは Function ProcName(cel As Range) As Double とか、パラメータにAs Rangeを持つところみたいで 一応As Objectに変えてしまえば通るけど、治すの大変だ・・・
- 59 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 12:26:18.38 ID:Hh88K1uA0.net]
- 関連してそうな情報を発見
https://blogs.msdn.microsoft.com/office_client_development_support_blog/2017/05/17/ とうとう本気で.xls形式を殺しに来たか
- 60 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 12:27:06.53 ID:OupscBB+0.net]
- >>55
なんていうか、まあ頑張れ
- 61 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 12:49:41.54 ID:P+QgsC3b0.net]
- 俺のInsider slow バージョン 1704(ビルド8067.2115)では
>>55の情報だけを たよりにやって みたけど 問題ない (xls,xlsm 両方) とだけ言っておく
- 62 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 13:13:31.21 ID:Hh88K1uA0.net]
- >>58
すまない。新規ブックでは検証していなかった。 問題無いことを確認 14.0.718.5000 16.0.7927.1024 コンパイルエラーを確認 15.0.4927.1002 16.0.8067.2115 なので、>>58の環境でも発生すると思う。 新規ブックで、 Module1に Function ProcName(cel As Range) As Double ProcName = cel.Value End Function Sub btn_Click() MsgBox "click" End Sub を書いて、ブック上のシェイプのマクロにbtn_Click()を割り当てるとファイルを開いた瞬間にだけコンパイルエラーが起こるよ 上記URLによれば、モジュール範囲の定義なら起こるらしいので Private 変数 As Workbook Sub btn_Click() MsgBox "click" End Sub でもダメぽ 解決策はAs Objectとするか、モジュールを切り分けるしかない。
- 63 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 13:33:37.37 ID:P+QgsC3b0.net]
- >>59
なるほどね 少なくとも 俺の環境下では >>59の条件で xls のみだな その現象が発生するのは xlsmは 問題ない つかもう excel2003までのexcel形式(xls)使うのやめたら? と思うのだけど?
- 64 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 13:52:53.66 ID:Hh88K1uA0.net]
- >>60
全くもって仰る通り。 以前から.xlsmへの切り替えを勧めているが、なかなか全てを切り替えられなくてね。 各個人に持たせているファイルを差し替えろって言ってもメール無視されるし。 あと単純に.xlsmに変えてしまうと ・他のシステムが対応していないせいでxlsしか使えない。 ・表の最大値が大きくなったお陰で、既存のマクロだと末端の列列まで処理するループが混ざっていて永久に処理が終わらない。 (そのくらいマクロ直せよ・・) ・ブックのリンクが貼ってあるせいで過去のエクセルファイル全てのリンクを修復しないといけない。 (作ったやつ誰だよ・・) ・データサイズの大きい「共有ブック」をxlsmに変えるととてつもなく重くなる。 (データとマクロ分離しろよ・・) とか様々な理由があって切り替えが終わってない。 ツッコミどころ満載やで。
- 65 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 13:56:26.64 ID:P+QgsC3b0.net]
- いい 切り替えの機会じゃん
xlsは もうまともに 使えません(キリッ ・・・・と言えたらいいねw
- 66 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 22:44:50.72 ID:ELP3hVnQ0.net]
- 変数宣言を一番上に書くと、
確認する時、スクロールで戻るのが面倒なんですが、 Excelなのに、上の方の画面を固定出来るという発想は無かったのでしょうか。 Excelなのに。
- 67 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 23:07:15.86 ID:HsQ+il8a0.net]
- そんなことより行番号表示かと。
- 68 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 23:10:43.79 ID:1s7BLiGf0.net]
- グローバルで別のモジュールに書いてウィンドウを並べるとか
- 69 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 23:27:00.50 ID:vYjNISl1x.net]
- Excel VBAしかやったことない人が何だか勘違いしてるようだがそもそもVBEはExcelの機能ではないぞ
- 70 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 23:34:30.47 ID:vnM/uOfn0.net]
- >>63
> 変数宣言を一番上に書くと、 必要な所に書けばいいやん って言うかスクロールが面倒なほどでかい関数とか書くなよ
- 71 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 23:42:30.09 ID:FnbaGtrQ0.net]
- >>63
確認する時って 変数の何を確認するの?
- 72 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 23:49:13.07 ID:ELP3hVnQ0.net]
- >>68
poって何の変数だっけ? みたいな。
- 73 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 23:52:43.48 ID:FnbaGtrQ0.net]
- >>69
何の変数ってのがよく分からんのだけど、 Dim Example As Long: Example = 1 みたいに宣言と代入を上の方でしてるって話? ローカルウインドウとかその他機能でなんとかならんの?
- 74 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 23:54:11.19 ID:1s7BLiGf0.net]
- 中身のわからない変数名を付けるからそんなアホな事をせにゃならんようになるんだ
似たような変数名が多すぎてややこしいならfunctionに分ける等、予め余計な手間が発生しないようにするんだ
- 75 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 23:59:18.39 ID:dZkjjWfrx.net]
- >>63
書かなきゃよい
- 76 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 00:21:30.52 ID:foz/Iffu0.net]
- ネタだよな
コードウィンドウ分割するだけじゃねえのって思っちゃったけど i.imgur.com/jnQLIFk.png
- 77 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 08:57:37.77 ID:k9L+DwNA0.net]
- >>63は赤の他人が書いたクソ長いコードを解析させられている気の毒な人だ
と好意的に解釈しておこう
- 78 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 09:20:18.91 ID:5sPtJFYn0.net]
- hoge param1:=xxx, param2:=yyy みたいな書き方に慣れないんですが
dummy = hoge(xxx, yyy) とかではダメな理由ってあるんでしょうか?
- 79 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 09:33:47.65 ID:TX7Bd0Me0.net]
- >>75
別にどっちでもいい。好み ファイルの保存なんかもこの方が見やすいと思う 例えば保存時で比べる ファイル形式を定数で打つと分かり辛い Thisworkbook.SaveAs("C:\foo",43) こう書けばフォーマットなんだな、ということが見てすぐにわかると思う Thisworkbook.SaveAs Filename:="C:\foo",FileFormat:="43" 本当はこの方が良いけどね Thisworkbook.SaveAs Filename:="C:\foo",FileFormat:="xlExcel9795" 他にも引数が大量にあるときやパラメータが複雑な時にわかりやすい。以下は見辛い dummy = hoge(xxx, , , yyy, , ,zzz) 逆にsum()を sum arg1:=xxx, arg2:=yyy なんてすると読みづらいだけになる と言ってる俺も保存の時ぐらいにしか使わないけどね
- 80 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 09:53:58.83 ID:5sPtJFYn0.net]
- ありがとうございます
事務仕事でExcelVBAをいじる必要があったんだけど 大昔の非構造化BASICやFORTRAN、Cなどの印象しかないので最近の言語は抽象的すぎて分かりにくい
- 81 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 10:13:55.47 ID:I6OViHCS0.net]
- >>75
その名前じゃあまりメリットないけど引数の名前をちゃんとつけてたら分かりやすい あと引数がたくさんある場合に後ろの方の引数を指定したい時とか Workbook.Open FileName:="test.xlsx", AddToMru:=True
- 82 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 10:29:20.36 ID:0mLljkpvd.net]
- >>77
大昔のCって関数と最初の { の間に変数宣言するようなやつ?
- 83 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 10:44:25.75 ID:5sPtJFYn0.net]
- >>79
そんなやつ、カーニハンとリッチーの第1版、白いカバーの表紙のやつ
- 84 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 10:50:27.63 ID:5sPtJFYn0.net]
- 変数を宣言しただけでは領域が確保されず
値を代入しただけでプログラムが暴走するんだけど原因に思い当たらず3日間悩んだ挙句に挫折した
- 85 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 10:54:07.27 ID:TX7Bd0Me0.net]
- >>81
上で見たけど、vbaは内部的にかなり変な挙動をしている newの時点ではメモリ領域は確保されず、初めてプロパティやメソッドにアクセスした段階でメモリ領域が確保される また、 set foo = thisworkbook set bar = thisworkbook は、foo == barに「ならない」 fooとbarは常に違う参照が生成されるので、別扱いとなる そのコードを教えてくれれば問題解決できると思う というか後学のためにも見てみたい
- 86 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 10:54:21.25 ID:TX7Bd0Me0.net]
- newじゃないや、setか
- 87 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 11:19:48.33 ID:nyexelOB0.net]
- 日本語も変数として使えるからわかりやすい名前つければいい
- 88 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 11:57:41.20 ID:w41RCx9Yp.net]
- 日本語は好き嫌い分かれるからなあ
俺は日本語が見易いけどさ
- 89 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 11:59:34.10 ID:TX7Bd0Me0.net]
- google翻訳しながら英語変数使うぐらいなら、日本語使ったほうが絶対に良い
- 90 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 13:11:22.41 ID:DWQm6waj0.net]
- Visual Basic Edtor って、単体じゃ入手できないよな?
しかもExcelのバージョン違えば使い物にならんヶ所出てくるし ThisWorkbook だって、どの?に成るだろうし Microsoft Script Editer じゃあるまいし、どう考えてもExcelの付属品っつー立ち位置だろ Excelの「おまけ」機能に決定 Word とか Outlook とかバリエーションは在るにしても
- 91 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 13:21:20.46 ID:9VI8goCbM.net]
- 根本的に勘違いしててワロタw
- 92 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 15:37:38.60 ID:VKPh1Lah0.net]
- >>73
>>63じゃないけど、これ知らんかったわ
- 93 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 18:04:39.38 ID:yKxdvQKVr.net]
- 無知って凄いね
感心した
- 94 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 18:24:24.01 ID:KHEwJCpd0.net]
- >>63
C#とかVB.netでアドイン作ればOK。 VBAでもセキュリティに問題出るけど作ることは可能。
- 95 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 18:58:10.02 ID:E4Y
]
- [ここ壊れてます]
- 96 名前:2PkRr0.net mailto: Excel VBA で Access と連携する業務システムって、ここの人達的にざっくりどう思いますか。社内システムの改良にアサインされてしまった。 []
- [ここ壊れてます]
- 97 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 19:08:49.87 ID:KHEwJCpd0.net]
- >>92
どう思うって、どういう意味? 別に何とも思わんが。
- 98 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 19:16:24.30 ID:E4Y2PkRr0.net]
- >>93
前スレ478さんが、VBAでSQLは鬼門って書き込みしてるのを覚えてたもんで、苦労するシステム構成なのかなぁと Excel VBAの質問じゃないからスレチでしたかね、すんません
- 99 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 19:18:51.52 ID:bcgPDffLp.net]
- >>92
良いんじゃね
- 100 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 19:51:15.58 ID:nuBqrdCz0.net]
-
- 101 名前:苦労するかどうか、VBA以外にもSQL知っておかないといけないような気もするけど… []
- [ここ壊れてます]
- 102 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 20:11:15.06 ID:SOOWfvsE0.net]
- なんでVBAでSQLが鬼門なのか、理由とかあるの?
- 103 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 21:48:00.24 ID:ZQ24XbJz0.net]
- Accessと連携なら、問題ないんじゃ…。
単体だと、更新処理系が面倒。 参照だけなら大差ないと思う。
- 104 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 22:03:15.15 ID:SOOWfvsE0.net]
- ExcelVBAとAccessVBAでSQLの構文に違いがあると言いたいの??
- 105 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 22:25:58.77 ID:TX7Bd0Me0.net]
- >>97
やったらわかる phpでsqlは黄金パターンでうまくいく。db設計もいつも通り。文字コードはutf8 エラー処理も死ぬほどある 、 C#やVBはかなりめんどくさい、というよりもそもそも使う必要がかったので、前任者の引き継ぎが非常にだるい つまずく場面としては、具体的には文字コード。shift-jisだと最悪。また、db設計が適当 db接続も何かうまくいかない
- 106 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 23:25:01.03 ID:SOOWfvsE0.net]
- >>100
要するにお前のスキルが低すぎてVBA程度もロクに使いこなせない、としか理解できない内容だな
- 107 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 23:32:49.13 ID:RVvLdbs7x.net]
- >>100
その差が大きいとは思えないけど。 vbaでもutf8扱えるよ。 接続はodbcで繋がる。
- 108 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 23:35:59.38 ID:S4VyllBW0.net]
- ODBC=おでぶちゃん
- 109 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 00:10:42.76 ID:iEpK3Njn0.net]
- >>99
SQLのUpdate、Delete、Replaceが駄目。 Excel側のRows().Deleteとか、Replace使えばいいだろって? 遅くないですか、それ。
- 110 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 00:16:44.29 ID:o4hB34de0.net]
- それはVBAじゃなくてオラクルの問題なんじゃないのか?
- 111 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 00:22:22.71 ID:o4hB34de0.net]
- >>105
どこからオラクルが出てきた!?
- 112 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 03:17:25.81 ID:GlMb9Muz0.net]
- >>100
君なあ、能力の問題なのか性格の問題なのか分からんが説明が足らんのだよ。 ExcelからDAOを使うかADOを使うかによって変わるのは当然のことだし、ExcelとAccessでどうとか言われてもどういう観点の話か分からんだろ。
- 113 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 03:20:01.97 ID:GlMb9Muz0.net]
- というか、文字コードの話が出てくるってことはODBCとかドライバの話まで出てくるじゃねーか。
それじゃあ違って当然だ。
- 114 名前:デフォルトの名無しさん [2017/05/21(日) 07:08:05.80 ID:S79+g3VB0.net]
- 質問させてください。
excelからoutlook起動させてメールを作成するマクロ作ってます。 数パターン用意したテンプレートに任意の文言を置換・挿入してoutlookに渡す?感じです。 動作自体はうまくいってるんですが、なぜかoutlookに渡した本文の文字サイズが12ptになってしまいます。 outlookのデフォルトの文字サイズは10ptだし、12ptになる理由が全く想像つきません... 漠然とした質問で申し訳ないですが、outlook側で設定したデフォルトの文字サイズでメールを作成するようにできないでしょうか? 初心者なので、的はずれなこと言ってたらごめんなさい。
- 115 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 07:40:39.09 ID:DM2pkhyK0.net]
- >>109
とりあえずぱっと思いつく原因は、エクセル側が12ptなのでそれがoutlook側に渡っている気がする テキストだけ渡すようにするか、エクセル側を一時的に10ptにしてメール作成後に12ptに戻すとかで対処できるかもしれない 全然違うかもしれない。コードを見せてもらえたら試してみるよ
- 116 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 08:14:42.08 ID:1Ubd4ETn0.net]
- >>97
>>104 とかの話でシートを SQL で操作する話を言ってるんだろ あと >>100 は単にディスりたいだけ PHP だといつも通りの DB 設計が
- 117 名前: VB/C# だと DB の設計が適当とか C# に挫折した底辺 PHPer の煽りだろ []
- [ここ壊れてます]
- 118 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 09:34:47.94 ID:bvqoufgo0.net]
- しかしなんで今どきAccessなんか使うんだろ。
SQL Server簡単だよ。Management Studio使いやすいし。
- 119 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 09:46:01.40 ID:76EOq35R0.net]
- 事務的な作業ならAccessで十分だからだろうな。
というかローカルで使えるDBソフトってAccess以外にあんのかな。
- 120 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 10:23:28.85 ID:1Ubd4ETn0.net]
- >>112
DBMS だけじゃなくてレポート機能とかが欲しいんだろ >>113 localhost で使えばどんなデータベースもローカルで使えるけど? サーバーを立てたくないと言うなら sqlite とか SQL-Server Compact Edition が見捨てられつつあるのが残念
- 121 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 11:05:17.83 ID:DM2pkhyK0.net]
- 使える人が多いってのは会社では非常に大きなメリット
桐ってソフトを使ってたけど、使える人が少なすぎてaccessに変えることになった そしてword、てめーはダメだ
- 122 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 11:48:21.26 ID:S79+g3VB0.net]
- >>110
レスありがとうございます。 excel側の文字サイズは10ptなので、ご指摘の原因ではなさそうです。 恥ずかしいですが、ファイルをアップロードしました。 ダウンロードキーは「excel」です。 https://www.axfc.net/u/3807959 実行ボタンを押すと、outlookが起動されてメールが作成されます。 ご確認お願いします。
- 123 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 14:13:30.87 ID:/uUqSVmCx.net]
- >>113
発想が貧困過ぎて草
- 124 名前:デフォルトの名無しさん [2017/05/21(日) 14:33:37.38 ID:DM2pkhyK0.net]
- >>116
さっぱり分からん。なんか挙動がバグくさい エクセルvbaからメールを作るとフォルトで12pxになるようだ。これは仕様と捉えていいと思う で、解決方法としてはこう <body>タグにインラインcssを設定する Sub msg2olapp() '''Outlookでメール作成 Set mail_item = olapp.CreateItem(0) mail_item.To = toadd 'To mail_item.Cc = ccadd 'Cc mail_item.subject = mailsub '件名 mail_item.body = mailbody '本文 mail_item.htmlbody = Replace(mail_item.htmlbody, "<BODY>", "<body style=""font-size:13px"">") mail_item.Display '表示 End Sub インラインcssで設定したフォントサイズは何故か3/4になる。理由も意味もわからんが、ゲイツの趣味かなんかだろう 深く考えずに10pxの4/3、つまり13pxでインラインcssを指定する。こうすれば10pxのフォントサイズになる
- 125 名前:デフォルトの名無しさん [2017/05/21(日) 17:02:34.86 ID:S79+g3VB0.net]
- >>118
ありがとうございます。 望み通りの動作しました。 ちなみに、自分の環境では13pxだと6.5ptになってしまいました。(1/2になる?) あと、>>116で作成したメールのタグを見てみたんですが、「p.MsoNormal...」ってとこのfont-sizeが12ptになっていて、そこを10ptに変更するとうまく表示されるようになるようです。
- 126 名前:デフォルトの名無しさん [2017/05/21(日) 18:41:32.83 ID:Ox0ZLs5T0.net]
- いまだにptとpx違いがわからない人っているんだね勉強になる
- 127 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 18:46:19.26 ID:DM2pkhyK0.net]
- >>120
ありがとう本当に気づかなかった web触ってるとptって単位は記憶から抹消されるわ
- 128 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 23:02:22.04 ID:+shsKnP00.net]
- データベースとの接続処理で一つ教えてください
Sub test() Dim wkR As New ADODB.Recordset S_RecordsetClose (wkR) End Sub レコードセットのcloseとnothingの処理を一つにまとめようとしたんですが、 型が一致しません と S_RecordsetClose (wkR) のところでエラーになります Debug.Print TypeName(wkR) で見たら当然(だと思うんですが)Recordsetに なってるんで、なんでこれで型の不一致になるんです? ちなみに S_RecordsetClose に書いた処理は↓です Sub S_RecordsetClose(ByVal rec As Recordset) rec.Close Set rec = Nothing End Sub
- 129 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 23:12:50.81 ID:bvqoufgo0.net]
- >>122
テキトーに答えるけどByValで受け取った変数に Set rec = Nothing しても意味ないと思う
- 130 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 23:25:21.22 ID:aKuhNyUq0.net]
- >>122
型の不一致の根本原因は (wkR) だと思われ S_RecordsetClose wkR か Call S_RecordsetClose(wkR) にしる
- 131 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 23:26:47.02 ID:+shsKnP00.net]
- >>123
あ、、、、言われたらそうだ^^;。 それは確かにその通りで、この処理自体の問題だとは思うのですが、引数を受け取る段階で型が一致しないのはどうして? ちなみにByRefでも同じなんですが。
- 132 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 23:34:14.77 ID:+shsKnP00.net]
- >>124
リロってなかった Call S_RecordsetClose(wkR) でかつByRefにしました。 ありがとです。 動作についていまいちよく判ってないっす^^;
- 133 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 00:57:19.08 ID:MyMt2epv0.net]
- >>122
ADODB.Recordsetと、Recordsetの違いじゃないの? Recordsetって複数あるから省略しちゃうとどれ指してるか分からなくなるぞ。
- 134 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 12:17:47.19 ID:0dv64TbrM.net]
- 質問ですがVBAのプロパティやメソッドの扱い方について詳しい入門書はありませんか?
会社でマクロ使うため超入門(マクロの記録からつかうやつ)と学校で教わったプログラム知識(basicとc++)でなんとかやってるんですがやはりVBAの命令の扱い方が怪しく… 予算は2〜3千円程度でお願いします
- 135 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 12:26:52.79 ID:csbpN2HFr.net]
- >>128
ExcelとAccessのVBAの本なら腐るほどあるからここで聞かなくてもググれば良い Word、Outlook、PowerPointのVBAとなると日本語ではかなり少なくなるので教えるまでもなくググれば出てくる ググって出てこないなら英語書籍やネットブログを漁るか、MSDNを直接参照することになるね
- 136 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 12:56:42.47 ID:AKn80VTzp.net]
- >>128
vbeでF2キー
- 137 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 13:29:08.29 ID:o9BH+SoNH.net]
- >>128
メソッドやプロパティの方から網羅的に学習するのはきついので、やりたいことの方から網羅的に 説明してる本の方がいいと思う。 たとえば、 『Excel VBA逆引き辞典パーフェクト』 www.shoeisha.co.jp/book/detail/9784798146584 似たような『○○700』みたいなのがいくつかあるから、どれか選んで流し見するのがいいと思う。
- 138 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 14:44:41.19 ID:nSxPTPKq0.net]
- 本なんて必要か?
多少の英語カがあればインテリセンスの中からそれっぽいもの選んで実験+Web検索で十分だろ。 あとは、インタフェースへのセンス(絶対この場合だったらこんなプロパティがある筈という嗅覚)とかね。 初心者だったら以下に気を付けてコード書くと良い。 ・マクロ記録したらコードの中で必要無い部分をとことん削るのが常識と考えよう。 ・それで動作確認して問題無いことを確めよう。 ・削って問題無いと思っても、その場では問題無くても場合により問題出ることあるから削って残った部分をWeb検索で皆はどうしてるのかを確認しておこう。 ・英語的にそのコードの意味を考えよう。 'A1を選択 Range("A1").Select '選択したものの値を1にする Selection.Value=1 だったら当然 'A1の値を1にする Range("A1").Value=1 ということになる。
- 139 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 15:17:01.68 ID:o9BH+SoNH.net]
- >>132
そんな無駄な試行錯誤や調査を、たかだか2,3000円の本を読むだけで省略できるんだが。 入門書とか馬鹿にする人いるけど、たいてい>>132みたいな感じだね。
- 140 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 15:42:03.39 ID:W5+S3ypfM.net]
- >>132
デジタルに調べる良さとアナログに調べる良さは別物だよ アナログだと「調べるつもりもなかったけどたまたま見かけて使ってみたらいい感じになった」ってことはアナログならでは
- 141 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 15:47:18.44 ID:0dv64TbrM.net]
- 色々意見ありがとうございます
うちの会社ネット禁止なので本に頼るしかない事情があるのです… ネット可ならネット検索でやりたいのが本音です
- 142 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 16:20:04.11 ID:yUPIrMPGd.net]
- >>135
開発環境だけでなくどこからもネットに繋がらないというなら会社に文句をいうべき 煽りではなく
- 143 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 18:00:49.91 ID:AKn80VTzp.net]
- >>133
その試行錯誤が無駄かどうか長期的に考えれば分からない
- 144 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 18:15:29.31 ID:MyMt2epv0.net]
- 業務なのか自主的なのかで話が変わってくると思うけど、
VBAいじるのにネット無しは辛いなぁ。
- 145 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 18:29:46.83 ID:o9BH+SoNH.net]
- >>137
書籍で基本的な知識を学んだ後でも、試行錯誤はするでしょ。 その試行錯誤には意味がなく、>>132のような試行錯誤には意味があるという主張? だとしたら、それは自分で勝手にやってくださいと言うしか。
- 146 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 18:56:05.69 ID:pWkjNq5k0.net]
- おおむかしは、FAXでMicrosoftから資料を引き出していたものじゃ
先ず、目次を引っ張れるFAX番号に掛けて、延々何十枚もの目次をげっと その目次から欲しい機能を探し出し、今度は欲しい機能のFAX番号へ掛けて これまた延々と資料を文字通り引きずり出しておったわ よく覚えてないけど、そんなかんじ その頃のFAXはB4の感光紙で、うっかり陽の当たるところに置きっぱで 外出したりすると、帰社した時には真っ黒くろすけで愕然と膝から頽れたり
- 147 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 19:18:46.60 ID:g3oHLvAy0.net]
- >>135
検索できるPCを用意してもらったほうが良い。もしくは自分で用意するか ネットでその都度検索できないとあまりに効率が悪い
- 148 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 19:45:17.11 ID:ewHRkUXfd.net]
- >>136
金融じゃ普通だぞ いちいちググらないとコード書けないやつはお呼びじゃない
- 149 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 20:10:34.61 ID:3QNKGHFQ0.net]
- >>142
金融案件みたいなデスマーチの温床に言われてもww
- 150 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 20:13:17.75 ID:g3oHLvAy0.net]
- >>142
金融業界にvbaでセコセコやってるやつなんでいねーよwww 帳票システムは全部外注、ボタンひとつで出るようになってるんだよwww しかもエクセルよりアクセスの方が使用頻度が高い 岡三証券とかは知らんけど
- 151 名前:デフォルトの名無しさん [2017/05/22(月) 20:44:19.38 ID:rXkCxzW60.net]
- なんかさあ…もう少しオープンに自分の無知をさらけ出そうぜ
無知ってそんなに悪いもんじゃないぜ?
|

|