1 名前:既定のプロパティさん mailto:sage [2012/01/29(日) 00:05:13.16 ] 01 pc11.2ch.net/test/read.cgi/tech/1054356121/ 02 pc11.2ch.net/test/read.cgi/tech/1168308855/ 03 pc11.2ch.net/test/read.cgi/tech/1180192018/ 04 pc11.2ch.net/test/read.cgi/tech/1189814602/ 05 pc11.2ch.net/test/read.cgi/tech/1197448064/ 06 pc11.2ch.net/test/read.cgi/tech/1205231499/ 07 pc11.2ch.net/test/read.cgi/tech/1212587819/ 08 pc11.2ch.net/test/read.cgi/tech/1219673793/ 09 pc11.2ch.net/test/read.cgi/tech/1228372971/ 10 pc12.2ch.net/test/read.cgi/tech/1235332603/ 11 pc12.2ch.net/test/read.cgi/tech/1241885130/ 12 pc12.2ch.net/test/read.cgi/tech/1247566074/ 13 pc12.2ch.net/test/read.cgi/tech/1254281104/ 14 pc12.2ch.net/test/read.cgi/tech/1262748898/ 15 pc12.2ch.net/test/read.cgi/tech/1271261239/ 16 hibari.2ch.net/test/read.cgi/tech/1280045912/ 17 hibari.2ch.net/test/read.cgi/tech/1289182437/ 18 hibari.2ch.net/test/read.cgi/tech/1298240666/ 19 hibari.2ch.net/test/read.cgi/tech/1305754555/ 20 hibari.2ch.net/test/read.cgi/tech/1312435844/ 21 hibari.2ch.net/test/read.cgi/tech/1316931607/ 前スレ: Excel VBA 質問スレ Part22 toro.2ch.net/test/read.cgi/tech/1322400978/
648 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 01:51:43.73 ] >>642 そのExcelが使えるってどの程度のレベルの使えるなの? 男でもある?
649 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 02:01:33.59 ] >>647 ありがとうございます。 散布図で何とかできました。
650 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 02:05:46.33 ] >>648 バイト価格だね
651 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 02:17:39.55 ] VBAが使えるといえば普通は Oracle SQLが使えるというのも含む
652 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 05:00:10.04 ] VBAが正しく使えれば DelphiだろうがJavaScriptだろうがJavaだろうがCだろうが そんなに難しくない筈 むしろVBAのほうが難しいくらいかも ただSQLはちょっと毛色が違うからVBAが使えることとSQL が使えるということは同じだとは思わないほうがいいかも
653 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 06:51:56.55 ] vbaで使うデータベースはなにが良いのですか?いまはシートにデータ並べてますけれど
654 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 07:03:43.75 ] ググってきたら
655 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 08:17:32.38 ] >>625 波形を気合いで計算してWAVの頭の構造体を気合いでくっつけてdirectsound8
656 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 08:22:26.53 ] >>653 一番相性がいいのはもちろんAccess
657 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 16:53:47.11 ] こんにちあ! コード書き終えたの ですけど12時間以上処理してるの でアドバイスくれし
658 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 18:07:40.25 ] コードを載せろよ
659 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 18:30:36.11 ] >>657 ScreenUpdatingとか、よくある高速化テクニックは使ってる?
660 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 18:33:58.45 ] XP/Excel2000 csvファイルを出力させたいのですが、見よう見まねで固定のファイル名が出せるところまでは辿り着きました。 次にファイル名をセル参照なり変数でつけたいのですが、どうしたらいいでしょうか? Private Sub CommandButton1_Click() Const cnsFILENAME = "\test.CSV" Dim FSO As New FileSystemObject Dim TS As TextStream Dim GYO As Long Dim GYOMAX As Long GYOMAX = Range("C65536").End(xlUp).Row Set TS = FSO.CreateTextFile( _ Filename:=ThisWorkbook.Path & cnsFILENAME, _ Overwrite:=False) GYO = 3 Do Until GYO > GYOMAX TS.WriteLine FP_EDIT_CSVREC(GYO, 2, 3) GYO = GYO + 1 Loop TS.Close MsgBox "OK" Set TS = Nothing Set FSO = Nothing End Sub
661 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 19:32:54.15 ] >>660 Dim cnsFILENAME As String cnsFILENAME = "\test.CSV" とか cnsFILENAME = Range("C5").Text とか
662 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 20:05:05.30 ] とりあえずscreenupdating使って見たんだけど、最小化してまた大きくしたら画面真っ黒になっちゃったよ 進行状況だけ表示しとけばよかったかなあ
663 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 20:13:18.21 ] 関数をワークシートにたくさん埋め込んでいるんだったら、作業中はOffにして作業後にOnに戻す これはかなり効く(たくさん埋め込んでいたらの話だけど)
664 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 21:12:15.18 ] どうやってoffにするのですかお
665 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 21:15:09.26 ] もしかしてワークシート最小化にしてたらマクロ処理しないのですかお
666 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 21:19:50.44 ] まずモニターのスイッチを切れ
667 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 21:22:44.25 ] >>665 マクロの記録やってみれ Excel2010では↓のようになった Application.Calculation = xlManual ↓もとに戻す Application.Calculation = xlAutomatic
668 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 21:23:06.41 ] 画面更新ができないような処理してるからだと
669 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 21:30:59.55 ] >>640 VBA初心者レベル、Excelは基本操作もおぼつかない 当然ながらブラインドタイプとかはできないし、 ほかの言語などもまったく分からない。 というレベルで 週5日*1日8時間*時給1800円の仕事してます。 作業内容は一日分ずつのCSVファイルを一か月分にまとめたり それをグラフにしたりするだけです。 チョー楽だけど退屈です。
670 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 21:42:43.01 ] そういうことを出来るようにしてくれた人がいたってだけでしょ
671 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 21:44:29.82 ] どういうこと?
672 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 21:45:11.50 ] 金で時間を買われてるな
673 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 21:48:16.20 ] 初心者っていう人がVBAでそういうことを出来るようにすることが出来るのかなって感じなんだけど
674 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 21:48:39.69 ] >>672 時間を売って金を得て 金を使って時間を買うということ?
675 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 21:50:45.28 ] ノルマこなして、お金もらってるだけでしょ
676 名前:669 mailto:sage [2012/03/15(木) 21:56:00.37 ] >>673 会ったこともない誰かが作ったマクロを使ってます。 ところどころパラメータ(セルの行とか列とかの指定)を書き換えて実行するだけです。 >>675 ノルマは特に無いです というかむしろ早く終わりすぎたらマズイらしくて 一年かけてダラダラやってます。
677 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 21:59:39.96 ] VBA使って効率化出来るのを目の当たりに見ると怒る人がいる、世の中だからね コンピュータで処理できるようにしたのに、 コンピュータが勝手に作ってる とか、言われたときは...
678 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 21:59:45.52 ] 結局669はVBAを使ってはいるけれど プログラミングの仕事ではないってこと?
679 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 22:01:22.71 ] >>676 お役所?
680 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 22:04:50.80 ] >>676 大阪市? ここだけの話で
681 名前:676 mailto:sage [2012/03/15(木) 22:09:47.46 ] >>678 一応、仕事の名目は エクセルでのデータ整理です >>679 公務員じゃないけど似たようなもんです。 業務の成果は求められてなくて、 ただ単に労働時間分の拘束をされてるだけって感じです。 >>680 ちゃいまっせ、ホンマにちゃいまっせw
682 名前:デフォルトの名無しさん mailto:sage [2012/03/15(木) 23:12:01.77 ] マクロの記録てこういうときにつかえるんだなあみつを
683 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 00:43:25.24 ] ちょこっとわからない程度なら、部分的にマクロ記録のコードコピペしてます。 スピードも全く問題ないことがほとんど、使えなかった頃より実質こなせる業務がかなり増えた。
684 名前:586 [2012/03/16(金) 05:51:54.44 ] 忙殺されて、、、レス遅くなってすみません。 >>620->>624 皆さん、ありがとうございます。 会社のPC(WinXP Pro SP3/Excel 2003 SP3/メモリ2G) でもやはり44シート目で実行時エラーでした。 手持ちのもう一つのネットブック(Win7 32bit版/Excel2010/メモリ1G) で試したら、エラーは出ず、なんと、500シートでも動きました。 2003のバグですかね。。 ありました・・・これですね。 support.microsoft.com/kb/210684/ja ------- ブックに定義済みの名前を付けて保存したり、次のサンプル コードのように、ブックを閉じることがなく複数回ワークシートをコピーするとこの問題が発生することができます。 ------- 発生することができます・・って・・・・
685 名前:586 [2012/03/16(金) 05:52:55.59 ] >>623 ええと、マクロ実行して、1004が出たての未保存のブックは、シートの追加はできても、シートのコピーはできません。 (エラーも出ず、一瞬画面がブレたようになって無反応) いったん、保存して開きなおしたファイルだと、シートのコピーはできますが、再び、マクロを実行すると、 実行時エラー'1004': シートの名前をほかのシート、Visual Basic で参照されるオブジェクト ライブラリまたはワークシートと同じ名前に変更することはできません。 となって止まり、 ブックをみると、test1を押した場合は、「テンプレ(2)」を、test2を押した場合は、「テンプレ2 (2)」のシートを追加しようとしてるところで、また同じ名前で追加しようとして、止まってる感じ・・・ ActiveSheet.Name = がうまくいってないような感じです。 しかもエラーの回数はなんか毎回、44です。。PCに他にどんな重い処理をさせていても44。。会社のPCもそうでした・・。 なんだコレ・・私のやり方が何かおかしいのか・・・
686 名前:586 [2012/03/16(金) 05:55:19.72 ] このKBを見る限り、2007でも、2010でも発生するみたいですね。。 www.microsofttranslator.com/BV.aspx?ref=CSSKB&lo=SS&from=en&to=ja&a=http://support.microsoft.com/kb/210684/en-us?fr=1 テンプレートで保存して呼び出して使えって・・・。Vlookupで引っ張ってて、複数のシートがあっても大丈夫なんかな・・・ それとも100シートごとに保存するか・・・ それともシート挿入→末尾に移動→値の貼り付け→書式の貼り付け→印刷設定の貼り付け という関数を作っておくか・・・ 印刷設定がちゃんとなってるシートの印刷を手前において、反映したいシートを複数選択し、 印刷設定を開いてそのままOKボタンを押すと、複数のファイルに印刷設定が反映されるって 書いてあって、実際その通りだったけど、ウィンドウ枠の固定と、印刷タイトルの設定が反映されてなかった・・・ これだけ一個一個やるように関数に組み込むしかないのか・・・
687 名前:586 [2012/03/16(金) 05:56:10.36 ] そろそろ眠い・・・ しかもこの仕事を引き継ぐ人がマクロとか難しくて嫌だから、手作業でやりたいと言い出して、 このマクロは使われない可能性が高くなってきた・・・ 中身なんて知らなくていいから、黙ってボタン押せっつーの!くそ・・・! でも自己満で作るけどさ。 事務の世界っていつもこうなる・・・やっぱり私に事務は向かないのか・・かと言って、バケモンだらけのPGの世界ではこれ以上やってく自信がない・・・ >>677 あるあるあるあるあるある =Exact() で簡単に同じかどうかのチェックなんて出来るのに、「目視確認でやった方が確実だから、目視でやって」、とか ┐(´д`)┌ チラ裏すみません。眠いです・・・
688 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 08:09:03.03 ] >>661 サンクス
689 名前:デフォルトの名無しさん [2012/03/16(金) 09:49:02.14 ] Valueエラーが出るけどどこが悪いか分かる方いますか? Function sealtime(A As Range, B As Range) 'Application.Volatile '自作関数を自動再計算させます。 Dim time As Double time = Application.WorksheetFunction.ATAN((B - A) / 1) If time < 0.005 Then sealtime = "OK" Else sealtime = "" End If End Function
690 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 09:55:24.55 ] とりあえず Application.WorksheetFunction.ATAN より Atn のほうがいんじゃね
691 名前:デフォルトの名無しさん [2012/03/16(金) 10:30:21.14 ] >>689 ワークシート関数が全部VBAで使えるわけじゃない
692 名前:デフォルトの名無しさん [2012/03/16(金) 11:13:02.48 ] ダブルクリックで画像を挿入したくてネットで調べて色々コピペして作ったんですけどたまにエラーが出ます あと画像を開こうとしてキャンセルすると『1004 指定したファイルが見つかりませんでした』って出ます どこを直せばいいでしょうか お願いします Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim myRange As Range Set myRange = Range("C2:G10,C312:G21,C24:G32") If Application.Intersect(Target, myRange) Is Nothing Then Exit Sub End If Dim objFileName As String Dim objShape As Shape objFileName = Application.GetOpenFilename _ Set objShape = ActiveSheet.Shapes.AddPicture( _ Filename:=objFileName, _ LinkToFile:=False, _ SaveWithDocument:=True, _ Left:=Selection.Left, _ Top:=Selection.Top, _ Width:=242#, _ Height:=120#) Cancel = True End Sub
693 名前:デフォルトの名無しさん [2012/03/16(金) 11:32:07.34 ] あ なんかいけたっぽい こうしたらスムーズになった sFile = Application.GetOpenFilename(FileFilter:="gif,.gif") If sFile = "False" Then Exit Sub
694 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 12:12:14.79 ] エクセル2003のグラフのことで教えてください。 グラフ上のマーカーの上にマウスカーソルを乗せるとデータが表示できますが、 その表示されたデータを取得することはできないでしょうか? もしくは、そのマーカーに対応するセルをアクティブにする方法でもいいです。 どなたか、よろしくお願いします。
695 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 12:32:19.74 ] >>694 できません
696 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 12:50:50.80 ] >>694 マーカーに透明なラベルを被せたら余裕で何でもできる
697 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 15:24:36.03 ] for each でレンジ範囲の文字列数え上げるとき、数え残すことある?
698 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 15:27:49.62 ] >>697 例えば?
699 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 15:35:26.75 ] count = 0 for each a in range("a1:e5) if("あほ"=a.value) then count =count +1 end if next a で、 for b =1 to a にしてるんだけど、bがバグる
700 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 15:35:57.24 ] さいごにnext bは入れてる
701 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 15:41:28.29 ] >>699 aって何?
702 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 15:41:47.29 ] >>699 ○ For b = 1 To count × For b = 1 To a
703 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 15:45:00.17 ] ああcountにしてるけどバグる
704 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 15:45:45.84 ] >>703 バグる?
705 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 15:52:53.95 ] >>699 699がかなりあほってことでよろしいか?
706 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 15:54:53.70 ] bに同じ数続くことがあるのでする
707 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 15:57:41.20 ] マクロ記録をそのまま使ってる人いますか? やはり自分で全部書くのが普通でしょうか。
708 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 16:22:56.46 ] >>707 状況によるけど そのままでは使い物にならないことが多い ていうか、記録した方が早い部分と、自分で書いた方が早い部分とがあるので うまく組み合わせた方が結果的に早くプログラムが完成する
709 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 23:26:58.50 ] >>696 > >>694 > マーカーに透明なラベルを被せたら余裕で何でもできる やり方教えてクレクレ
710 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 23:51:19.86 ] DOSのコマンドライン引数を取得できないの? Sub Workbook_Open For I = 0 To ARGC -1 Debug.Print ARGV(I) とか。
711 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 00:08:29.34 ] >>709 そんな態度で教える馬鹿がいるか
712 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 00:09:20.05 ] うっはwwwwwwいま気づいたんだけどもしかして時間かかる作業させるときってさいごにシート保存するコードとか入れたりするの当たり前だったりするわけですよねですよねえええ
713 名前:デフォルトの名無しさん [2012/03/17(土) 00:11:35.15 ] あたりまえだ
714 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 00:14:16.48 ] ああもしかして指定時刻にセーブする処理とか入れてリスク管理してみたりするのかあああ
715 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 00:34:43.42 ] >>711 おしえれ
716 名前:デフォルトの名無しさん [2012/03/17(土) 10:26:53.14 ] >>710 > DOSのコマンドライン引数を取得できないの? > GetCommandLine関数
717 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 10:58:03.30 ] >>711 おしえれ ksg
718 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 11:47:45.96 ] >>716 ありがとうございます。 msdn.microsoft.com/ja-jp/library/cc429108.aspx ってこれ外部ライブラリ・コールか何かせんとあかんのやね、きっと。
719 名前:デフォルトの名無しさん [2012/03/17(土) 14:02:53.16 ] Private Declare Function GetCommandLine Lib \\\"kernel32\\\" Alias \\\"GetCommandLineA\\\" () As Long Private Declare Function lstrcpy Lib \\\"kernel32\\\" Alias \\\"lstrcpyA\\\" (ByVal lpString1 As String, ByVal lpString2 As Any) As Long Sub Workbook_Open Dim sBuf As String strBuf = Space$(255) Call lstrcpy(strBuf, GetCommandLine()) Debug.Print strBuf end Sub
720 名前:デフォルトの名無しさん [2012/03/17(土) 14:05:29.66 ] ごめん、p2で書いたら変な「\」がついちゃった Private Declare Function GetCommandLine Lib "kernel32 " Alias "GetCommandLineA" () As Long Private Declare Function lstrcpy Lib "kernel32 " Alias "lstrcpyA " (ByVal lpString1 As String, ByVal lpString2 As Any) As Long こうね
721 名前:694 mailto:sage [2012/03/17(土) 22:07:32.08 ] グーグル先生ってすごい! クリックで値が取れた!
722 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 15:07:11.33 ] >>669 派遣ですか? 正社員がいいのですが
723 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 15:17:58.27 ] 腐るからやめろよ
724 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 16:42:41.53 ] こんにつあ質問ですお A1-E1に1,2,3,4,5値が振ってあって A2-E2,A3-E3,....,A100-E100まで数値がランダムに入っています。 このとき各行を、それぞれ列の昇順で並べかえたい。つまりA2-E2,A3-E3,....,A100-E100とそれぞれ昇順に並べかえたいのですが、 そのとき1-5の値の対応を残したいのです。どうすればよいでしょうか!!
725 名前:669 mailto:sage [2012/03/18(日) 17:09:54.42 ] >>722 私は正社員ですがパートさんも居ます。 ただ、求人かけてないので・・・ あと、あまり詳しく書くと特定されそうなので もうこれ以上書かないことにします。 とりあえず大阪府も大阪市も一切関係ない民間企業です。
726 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 18:18:26.86 ] >>724 説明が下手すぎて質問が意味不明
727 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 18:31:41.37 ] 次の国会で青少年ネット規制法通すことにするわ 子どもたちを守るためには必要だよな
728 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 19:12:42.15 ] >>724 おりあえず、A2:E2 をソートしたいらしい。
729 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 19:38:33.54 ] >>724 とりあえずこれで皆の様子見てみて。 Sub Macro1() ' Version : Excel 2002 VB6.0 Range("A2:E2").Select Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight, SortMethod _ :=xlPinYin, DataOption1:=xlSortNormal End Sub
730 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 20:05:11.79 ] たぶん要点は >そのとき1-5の値の対応を残したい だと思うんだが 具体的に何をどうしたいのかがさっぱり解らんな
731 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 20:42:22.24 ] え…わたしの説明…ヘタすぎ!?
732 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 21:06:10.55 ] んーとですねー 数値が入ってるセルを行毎に昇順で並び変えたときの、順番を取得しまして、 次にその順番を基準に、最初にセルがあった列番号を並べ変えてですね、 さらにそれにセルに入ってた数値を対応させたいのですけど、具体的にすればいいのかはわからなくて行を2行にするくらいしか思いつかないのですのでなにかよい方方法を教えてみて下さいマシマロ
733 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 21:21:45.79 ] 何言ってんだかさっぱりワカンネ
734 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 21:28:55.25 ] ちゃんと説明しようとしない人間の質問に答える必要なし
735 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 21:40:34.77 ] 下記の様に作成したテキストボックスのShape objectを変数shSelに代入し て、そこに文字列や書式設定をやりたい。 Sub mkTextBTest02() Dim shSel As Shape Set shSel = ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _ 48#, 20 + 16 * lC, 10#, 16#) shSel.Characters.Text = lC '←$文字列を書く With shSel.Font '←$フォントの設定 .Name = "MS ゴシック" .Size = 9 End With shSel.ShapeRange.Line.ForeColor.SchemeColor = 1 '←$フォントの設定 End Sub ←$印の所でエラーが起きる。 .Characters .Font .ShapeRange は、class Shapeのpropertyでないから。 "ActiveSheet.Shapes.AddTextbox(〜).Select"として変数shSelの代わりに、 Selectionと書くとエラーが起きない。 class Shapeのproperty Characters,Font,ShapeRangeを指定するにはどうす ればいいでしょうか。
736 名前:729 mailto:sage [2012/03/18(日) 21:59:27.07 ] こんな感じ? F-J は順列番号 BEFORE: A1 B1 C1 D1 E1 +-------+-------+-------+-------+------- 1 2 3 4 5 21 20 19 18 17 31 32 33 34 35 45 44 43 42 41 56 52 53 54 55 61 65 63 62 60 +-------+-------+-------+-------+------- AFTER: A1 B1 C1 D1 E1 F1 G1 H1 I1 J1 +-------+-------+-------+-------+-------+-------+-------+-------+-------+------- 1 2 3 4 5 1 2 3 4 5 17 18 19 20 21 5 4 3 2 1 31 32 33 34 35 1 2 3 4 5 41 42 43 44 45 5 4 3 2 1 52 53 54 55 56 5 1 2 3 4 60 61 62 63 65 2 5 4 3 1 +-------+-------+-------+-------+-------+-------+-------+-------+-------+-------
737 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 22:05:40.66 ] 説明が分からないから答えようがないのかそれとも説明は分かるけれども態度が気に食わないから答えないのかもし仮に後者なら貴方こそレスする必要は無いし説明が分からないならば分からない箇所を指摘してくれれば返答できるのだが!!!
738 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 22:07:03.60 ] 736まさにそれですそれを2行にするか1行に続けて書くか以外になにか案はありますかないのならば1行に続けて書いた方がスマートなんでそうしますが
739 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 22:14:21.32 ] 元データの末尾に列番号を加える 元のデータ 12 54 . 8 23 36 これを 121.542 83 234 365 にしてから並べ替えれば、下1桁をチェックすれば元の位置がわかる
740 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 22:20:57.88 ] >>737 ちゃんと例を上げて処理をひとつずつ説明しろ 変な言葉遣い止めろ
741 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 22:36:53.87 ] なるほどおおおお0.0001とかにすれば誤差も出ないしいい感じですなあ
742 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 23:30:16.99 ] >>741 どんだけ低脳なんだよ いいわけないだろ ただ複数の値を保持したいだけなんじゃないのかよ データ用と表示用で表を分けるとか Idプロパティ使うとかすればいいだろ Idなら、 A.Idを降るプロシージャ(1〜5) B.それぞれの行を並べ替えるプロシージャ C.IdとValueを入れ替えるプロシージャ を作って、ABで並べ替えた後、 CBCで元の並びに戻る
743 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 23:36:09.02 ] あっはあidプロパティねthx!
744 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 23:40:58.34 ] 真性か・・・
745 名前:デフォルトの名無しさん mailto:sage [2012/03/19(月) 04:38:22.65 ] ' ↑これを エクセルのシート上で ="'"&A1 と書くとセルA1の文字列の前に ' が 連結されるのですが VBAで dot = "'" Cells(A, 5) = dot & Cells(A, 1) と書いてもA5セルの文字列(A1の中身)の前に ' が 表示されずA5セルをクリックすると 上部のセルの中身が見れるバーには ' が文字列の前に 表示されています。 A5セルを他のセルにコピーしても 文字列だけコピーされて ' はコピーされません。 VBAを使って、文字列の前に ' を連結させたいのですが 良い方法ありませんか?
746 名前:デフォルトの名無しさん mailto:sage [2012/03/19(月) 05:08:10.31 ] >>745 まず自分で調べろ 俺も知らなかったけど ググったら載ってたぞ いい加減にしろ!!
747 名前:デフォルトの名無しさん mailto:sage [2012/03/19(月) 08:02:09.18 ] >>746 VBAのプログラムがおかしいかと 何時間も考えたけど ぐぐったら1分で解決しました ありがとう
748 名前:デフォルトの名無しさん mailto:sage [2012/03/19(月) 22:01:31.40 ] >>735 以下の様に、変更するとテキストボックスをかけるようになった。 Sub mkTextBTest02() Dim shSel As Shape Set shSel = ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _ 48#, 20 + 16 * lC, 10#, 16#) shSel.TextFrame.Characters.Text = lC '←$文字列を書く With shSel.TextFrame.Characters.Font '←$フォントの設定 .Name = "MS ゴシック" .Size = 9 End With shSel.Line.ForeColor.SchemeColor = 8 '←$フォントの設定 End Sub VB Editorのヘルプを調べてわかった。 各くオブジェクトのpropertyと、propertyのobjectを定義するclassの区別 がついていなかった。