Excel VBA質問スレ Part8
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2008/08/25(月) 23:16:33前スレ http://pc11.2ch.net/test/read.cgi/tech/1212587819/
★1 質問テンプレ(雛形)は用意しませんが、OSとExcelのバージョンは必ず書きましょう。
★2 ExcelのVBA以外の部分に関する質問はNGです。
但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。
★3 ExcelのVBE(Visual Basic Editor)を使うとしても、VBAの分野以外に関してはスレ違いです。
VBAとは、『Visual Basic for Application』の略で
Application
├Workbooks
|└Workbook
| ├Worksheets
| |└Worksheet
というApplication以下のオブジェクトを、VB言語で操作するものを指します。
例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。
★4 とりあえず、Excelのインスタンスを作らずにVB6で出来ることは全てスレ違いだと思ってください。
★5 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み
コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。
ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。
★6 わからなければとりあえず「マクロの記録」(Alt, T, M, R)
0486481
2008/10/11(土) 12:15:07【モジュール】
Private Foo As Integer
public sub Bar(Baz As Integer)
Foo = Baz
End Sub
↓
【フォーム】
Private Sub TextBox1_Change()
On Error Goto Err
If ( Len(TextBox1.Text) > 0 ) And ( IsNumeric(TextBox1.Text) = True ) Then
Call Bar(TextBox1.Text)
Else
TextBox1.Text = ""
End If
Err:
If Err.Number <> 0 Then
● MsgBox Err.Description 'テキストボックスにキーボードから値を入力したとき、ここでエラーが出る。
End If
End Sub
0487デフォルトの名無しさん
2008/10/11(土) 12:45:270488デフォルトの名無しさん
2008/10/11(土) 14:52:03だからOn Error外せって
0489デフォルトの名無しさん
2008/10/11(土) 16:23:17>>483-484は、まだおまいの作ったコードは実行してないと思う
ネカフェで印刷して会社へ持って行って、見ながら手打ちしてからだから、
来年ぐらいじゃないかな
0490479
2008/10/11(土) 17:48:11VBAからソートプロパティを取得する方法は無いのでしょうか?
0491デフォルトの名無しさん
2008/10/11(土) 18:52:51テキストボックスの値を関数に渡す前にVal()で数値に
変換したら。
0492デフォルトの名無しさん
2008/10/11(土) 19:03:24> キーワードを変えてググってみても見つけられなかった。
> VBAからソートプロパティを取得する方法は無いのでしょうか?
>
ソートの設定のこと?
これならマクロの記録でできるけど。
Range.Sort Key1:= ・・・・ Order1:= ・・・・
0493デフォルトの名無しさん
2008/10/11(土) 19:10:50これまでの書き込みから、ソートの「設定」ではなく「設定内容の参照」のようです。
なので、今まで回答がない。詳しい人の目にとまるまで回答はないかも。
0494デフォルトの名無しさん
2008/10/11(土) 20:58:41単純にセルの値取得すればいいだけじゃないの??
0495デフォルトの名無しさん
2008/10/11(土) 23:01:15Excel: 2007
チャートの目盛線のスタイルを「破線」にしたいと思っていますが、
以下のようなコードを実行しても、「長破線」になってしまいます。
ActiveChart.Axes(xlCategory).MajorGridlines.Border.LineStyle = xlDash
LineStyleの値として設定できる値(xlDash, xlDashDot, xlDashDotDotなど)を
すべて試しましたが、やはり破線にはなりませんでした。
今は、手動で「目盛線の書式設定」→「線のスタイル」→「実線/点線」から、破線に設定しています。
VBAからは、チャートの目盛り線のスタイルを破線にはできないのでしょうか?
0496デフォルトの名無しさん
2008/10/12(日) 00:38:29@列を選択
AダイアログBoxに文字を入れ検索
B検索にヒットしたセルの左のセルに*を入力
具体例
@’D列・F列を選択
A’ダイアログBOXに検索したい文字 イロハ を入力
B’ イロハニホ が入力されてるセルD1の左C1と
アイロノカニ が入力されてるセルF3の左E3に*を入力
この作業のうちAとB(例はA’B’)をマクロで効率化したいと思っています。
詳しい方、コードを教えて下さい m( )m
この板を知る前に総合相談所にカキコしてしまったことをご容赦願います。
0497デフォルトの名無しさん
2008/10/12(日) 05:46:190498デフォルトの名無しさん
2008/10/12(日) 07:07:43先に総合相談所にも謝って来いよ
0499479
2008/10/12(日) 13:44:23おっしゃる通り、ソートの設定状態を参照したいのです。
Excelの並べ替えメニューに現在のソート状態が表示されるので、何処かに
ソート状態を保持している筈なのです。
これを取得する方法が分かりません。
0500デフォルトの名無しさん
2008/10/12(日) 16:54:02で、(直前に行われたであろう手動による)ソートの各種設定を参照してナニしようとしてるんですか?
0501デフォルトの名無しさん
2008/10/12(日) 17:29:28シートAにデータがあり、
シートBがアクティブ時にはシートAの選択データからシートBを編集します
シートCがアクティブ時にはシートAの選択データからシートCを編集します
シートBやシートCを編集する時のシートAのソート条件が異なるので
編集できるかどうかを判断するためにソート状態を知りたいのです。
実際には、プログラム用ブックと上記のデータ用ブックに分かれていて
プログラム用ブック側でデータブックのイベントを拾って汎用的に処理
しています。
0502500
2008/10/12(日) 19:23:34シートAは手動でソートするんですか? シートAのソートをマクロで実行して、
その際のパラメータをデータブックに記録しておけばどうですか?
シートAのソートのパターンをいくつかつくっておいてマクロ実行時選ぶように
したらいいのでは?
0503デフォルトの名無しさん
2008/10/12(日) 22:26:40ソートされる事も想定が必要です。
プログラムブックからデータブックを開いて、データブックに定義されている
内容によりデータブックのアクティブシートを編集しています。
データブック側にはVBAコード等の記述は不要であり、プログラムブック側に
VBAコードを記述し、データブックのイベントを拾ってデータブックの編集を
行っています。
データブックは任意のxlsファイルが指定できます。
0504デフォルトの名無しさん
2008/10/12(日) 23:42:020505デフォルトの名無しさん
2008/10/13(月) 00:01:290506503
2008/10/13(月) 00:02:44(Excel2000)されている事に気付いたので、取得する方法がある筈と考えた次第
です。
Excel2007を一寸見たら、現在のソート状態は表示されないみたいですね。
諦めかな...
0507デフォルトの名無しさん
2008/10/13(月) 00:27:160508デフォルャgの名無しさん
2008/10/13(月) 00:35:540509デフォルトの名無しさん
2008/10/13(月) 00:46:520510デフォルトの名無しさん
2008/10/13(月) 01:40:17ちなみにDoxygen+VBFilterは関数の中は全く解析してくんなかった。
0511デフォルトの名無しさん
2008/10/13(月) 14:36:23方法を知っている方おられませんか?
報告書(Aさん)→済_報告書(Aさん)
報告書(Bさん)→済_報告書(Bさん)
報告書(Cさん)→済_報告書(Cさん)
上記のように
()内の名前が変わってもファイル名を
報告書()→済_報告書()
と変更できる方法を探しています。
何か良い方法を知っている方がいれば教えて頂けないでしょうか?
お願いします。
0512デフォルトの名無しさん
2008/10/13(月) 15:12:43まず fileName LIKE "報告書(*)" で想定した書式であることを確認した後、
fileName = "済_報告書(" & Mid(fileName,5,Len(fileName)-(4+1)) & ")"
って感じ?
0513デフォルトの名無しさん
2008/10/13(月) 16:40:36スレ違い
ファイル名変更ぐらいならRENコマンドでできる。
0514512
2008/10/13(月) 17:50:21というか、何かしら加工した上でSaveAsする時のファイル名の話だと思っていたのだが。
違うの? >>511
0515デフォルトの名無しさん
2008/10/13(月) 18:51:550516デフォルトの名無しさん
2008/10/13(月) 18:58:06Name ステートメント
0517デフォルトの名無しさん
2008/10/13(月) 19:15:55返信遅くなってすみません
レス有難うございます。
>>何かしら加工した上でSaveAsする時のファイル名の話だと思っていたのだが。
はい、ファイルを一度開いて、ある個所にチェックを付けてからファイル名を変更して保存します。
最初は>>516さんの言うように Nameをつかってみようと思ったのですが()内の名前部分が
ネックになって上手くいきませんでした。
>>513、>>515さん
スレ違いでしたか、すみませんでした。
0518デフォルトの名無しさん
2008/10/13(月) 20:08:55xlsファイルフォーマットが公開されているので(英語)、
解析してソート部分の設定を読み出すコード書いたら。
0519デフォルトの名無しさん
2008/10/13(月) 21:24:530520デフォルトの名無しさん
2008/10/13(月) 21:42:570521デフォルトの名無しさん
2008/10/13(月) 22:54:480522デフォルトの名無しさん
2008/10/14(火) 10:15:24ヘルプには「シートごとに保存される」
とは書いてあるがどうやって取り出すか書いてないな・・・
ところでそもそも「ソートの設定」で見ようとするのは危なくないか?
コピペされたら最後に使われた「ソートの設定」とは違った並びになってる可能性もあると思う
ソートのパターンが分かってるなら列ごとにどういうソートがかかってるか解析したほうがいいと思う
0523500,502
2008/10/14(火) 13:13:28522に1票
>シートBやシートCを編集する時のシートAのソート条件が異なるので
>編集できるかどうかを判断するためにソート状態を知りたいのです。
とあるので、シートAのデータを上から順に調べるのが一番確実ではないでしょうか?
ソートをプログラムするのは大変だけど、ある規則で並んでいるかどうか調べるだけなら簡単では?
0524506
2008/10/14(火) 13:22:48出直します。orz
0525デフォルトの名無しさん
2008/10/14(火) 16:26:52Aが一定の条件でソートされてないとBやCの編集ができないのに、
ソートは人まかせってのが不思議
永遠にソートしてくれなかったらどうするんだろう
ソートされてるかどうかを何かのフラグとして扱うつもりなら、
それこそそんなの信用できないんじゃないの
気まぐれでソートして見てみただけかも知れないし
0526デフォルトの名無しさん
2008/10/14(火) 16:57:54文字列のソートの結果と大小比較(<, >)やStrCompの結果が異なるもの
があるようです。具体的な例をあげると、
"ad-02-mb.html"
"ad-02.html"
の2つ。昇順ソートをすると後者が先に、大小比較では前者が小さいと
なります。マッチング処理ができなくて困っています。解決方法を
お教えください。
0527506
2008/10/14(火) 17:42:10説明不足でした
BやCの編集が出来ない訳ではなく、グループが分断されてしまうので編集に時間が
多めに要するという事です。
強制的にソートする事も考慮していますが、シートAを選択した時に元の並び順に
戻す必要があります。
別シートにコピーして並べ替えという手もありますが、出来るだけ自由度を持たせ
ておきたいとも思っていますので、ユーザ任せでも良いかなという気もしています。
0528デフォルトの名無しさん
2008/10/14(火) 18:03:14バージョン差あるかもだけど、option compare は?
>>527
ソートされなくても永遠に作業が滞るわけではないのね。ならよかった
いつの日か希望どおりにソートしてもらえるといいね
0529デフォルトの名無しさん
2008/10/14(火) 19:03:09その「ソート」って何の事よ
0530デフォルトの名無しさん
2008/10/14(火) 19:35:11だったら作業用のシート作って、データ全部コピーしてそこで自分の好きなようにソートすりゃええやんか。
そうすれば元データはいじらなくて済むっしょ。んで作業が終わった時に作業用のシートを消せば?
0531デフォルトの名無しさん
2008/10/14(火) 19:36:190532デフォルトの名無しさん
2008/10/14(火) 21:16:220533デフォルトの名無しさん
2008/10/14(火) 21:58:59自分のPC(WinXp Excel2003)で試したら再現したので並べ替えのヘルプを見たら原因判明です。
ヘルプから引用
一重引用符 (') とハイフン (-) は無視されます。ただし、ハイフン以外は同じ文字列がある場合、
ハイフンを含む文字列が後に配置されます。
引用終わり
つまり、並べ替えの時は-が無視されるので、ad-02mb.html と ad-02.html が比較される。
先頭から6文字目は"m"と"."なので、"."のあるad-02.htmlが先になる。大小比較のときは"-"も
比較に利用されるので、bd-02-mb.htmlが先になる。
文字コード(10進表記)では、"-":45 ".":46 "m":109 です。
0534526
2008/10/15(水) 22:38:35おーっ、感動の回答!ありがとうございます。
自分の頭ばかり疑って、ヘルプを見るのを忘れてました。こんな仕様?があったとは。
で、どーすりゃいいのか考えないと。。。
とにかく、ありがとうございました。
0535533
2008/10/15(水) 22:54:32レスがあるとうれしいですね。
引用符を無視するのはわかるけど、なんでハイフンも無視するんだろ。
解決方法で悩んでいるようですが、データをハイフンではなくアンダーバー"_"にしたらだめですか?
処理対象のデータにハイフンとアンダーバーが混在してたらダメだろうけど、ハイフンだけだったら
一括置き換えでアンダーバーにしておいて、処理の後にハイフンに戻すとか。
0536デフォルトの名無しさん
2008/10/15(水) 23:00:230537デフォルトの名無しさん
2008/10/15(水) 23:03:150538デフォルトの名無しさん
2008/10/15(水) 23:04:220539デフォルトの名無しさん
2008/10/15(水) 23:08:50バイナリ・モードの並べ替え(VBAでのsort)ってできるんですか?
エクセルとエクセルVBAのヘルプをみたけど、「大文字と小文字を区別」するMatchCaseの記述は
あるけど、バイナリのことは書いてありません。(Excel2003)
0540デフォルトの名無しさん
2008/10/15(水) 23:27:300541デフォルトの名無しさん
2008/10/15(水) 23:35:570542デフォルトの名無しさん
2008/10/15(水) 23:48:53Option Compare ステートメント
0543542
2008/10/15(水) 23:52:530544539
2008/10/15(水) 23:57:27エクセルVBAのヘルプを見てみました。
引用はじめ
Option Compare ステートメントが記述されていないモジュールでは、既定の文字列比較方法
である Binary モードが使われます。
引用終わり
ということは、何も考えずに(手動、マクロとも)ソートしたときがBinary モードなので、
ハイフン"-"を無視しないようにするのは無理なのでは?
0545539
2008/10/16(木) 00:03:27リロードしてませんでした。一晩寝ると忘れますので、ご安心を。
0546デフォルトの名無しさん
2008/10/16(木) 01:57:460547デフォルトの名無しさん
2008/10/16(木) 03:44:562006/10/05 2
2004/08/12 5
2005/04/22 3
という値があって、購入日から保証年数を足して、今日現在(Date)に達していない(つまりは保証切れ)の場合、
・・・するという場合、
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then 'もし列がA(1)なら
★ If DateDiff("d", 「現在のセルの日付」+右隣のセルの値(年数), Date) < 0 Then
'今日との日付差がマイナスなら
Target.EntireRow.Font.ColorIndex = 5 'その行のフォント色を青(5)にする
Else
Target.EntireRow.Font.ColorIndex = 0 'その行のフォント色は黒(0)にする
End If
End If
End Sub
保証切れの場合、色をつけたいのですが、
★をどのようにすればいいでしょうか?
0548デフォルトの名無しさん
2008/10/16(木) 05:05:36詳しくはヘルプ読んで
あとそのコードだと保証期間内の時に青になるよ
datediffのヘルプ読んで
0549526
2008/10/16(木) 22:42:05Windowsの文字列ソートの問題は、結構話題になっていることがわかりました。
Excel 95までは、単純なソートであったものが、Excel 97から単語ソートとMSの言う、
ハイフン、アポストロフィ無視のソートに変わったみたいですね。単語ソートだと、
アンダースコアも更におかしな挙動になります。私は、"-"を""に、"_"を" "にリプレース
してマッチングする処理にしました。
ちなみにマッチングとは、キーをDo While oldキー >= Newキー で回して、
=のときにマッチング処理を行うものです。このときのキーの大小判定と、ソートの
並び順が異なるために、おかしくなっていました。
みなさんのおかげで、なんとか完成しました。ありがとうございました。
0550デフォルトの名無しさん
2008/10/16(木) 22:51:100551526
2008/10/16(木) 22:52:41Do While マスターキー >= トランザクションキーでした。
0552デフォルトの名無しさん
2008/10/16(木) 23:07:510553デフォルトの名無しさん
2008/10/16(木) 23:09:300554デフォルトの名無しさん
2008/10/17(金) 01:13:46てか、正規表現でも使うの?マッチングって事は。
0555デフォルトの名無しさん
2008/10/17(金) 02:37:01COBOL使えない若い人でも、周囲の先輩達が使うのでそれが一般的な用語だと思ってる事が多い。
0556デフォルトの名無しさん
2008/10/17(金) 10:56:37For〜Next文内で10回ごとにそれぞれ決まった作業を1回だけさせたい場合、
For I = 1 To 1000
「基本作業」
a = Right(I, 2)
If a = 1 Then
「選択作業1」
ElseIf p = 2 Then
「選択作業2」
↓
以下、0まで選択作業計10個
↓
Else
End If
Next I
こんな感じでいいんでしょうか?
今実行環境が無いのでどなたかアドバイスお願いしますorz
0557デフォルトの名無しさん
2008/10/17(金) 11:39:21あくまで自分ならだが
For I = 1 To 1000
'「基本作業」
a = I Mod 10
Select Case a
Case 1
'「選択作業1」
Case 2, 3
'「選択作業2」
End Select
Next I
といった感じにする
0558デフォルトの名無しさん
2008/10/17(金) 11:44:28ありがとう
家に帰ったらいろいろ試してみます
0559デフォルトの名無しさん
2008/10/17(金) 17:54:59とするマクロをVBAで組んだのですが,一回実行した後,
セルの値を1から2を変更しても,実行ボタンをあらためて
押さないと色が青に変わりません。
2を入力すれば直ちにセルの色づけが青に変わるようにする
ためにはどのようなコードを入れればよいのでしょうか。
よろしくお願いします。
0560デフォルトの名無しさん
2008/10/17(金) 18:27:43ボタン押したら色が変わるようにしたんだろ?
だったら当然だな
入力してすぐに変えたければ
1.ボタンはやめてワークシートのChangeイベントで動かす
2.VBAをやめて条件付書式にする
どちらかだな
ところでテンプレ>>1の★5読んだか?
0561デフォルトの名無しさん
2008/10/17(金) 19:06:41ありがとうございます。
まったくの初心者です。場所を間違えたようです。
失礼しました。
0562547
2008/10/17(金) 20:36:21なんですが、
dateaddをして、比較したいのですが、
If Dateadd("y", target.offset(0,1).value, target.value) < Date Then
と、やってみてもダメでした、
Private Sub Worksheet_Change
If Target.Column = 1 Then
に、おいて、特定セルと特定セルの右隣を関数に入れて比較する方法は、
上記であっているのでしょうか?
0563デフォルトの名無しさん
2008/10/17(金) 21:38:26ダメだった時はどうダメだったのかを書こうぜ
> 特定セルと特定セルの右隣を関数に入れて比較
そこは合ってる
で、右隣のセルに入ってるのは日数じゃなく年数でしょ?
後はもっぺんヘルプ読んで
0564デフォルトの名無しさん
2008/10/18(土) 01:46:12条件付書式だかそんな感じの奴でマクロなしでできる
0565547
2008/10/18(土) 04:21:40もう一度考えてみました。
やりたいことと、セルの値
購入日 保証年数
2006/10/05 2 ←保証切れ(青色になって欲しい)
2004/08/12 5 ←保証が切れていない(色は黒色に)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
If DateAdd("d", Target.Cells.Offset(0, 1).Value * 365, Date) < Date Then
' 今日の日付に、Target.Cellsの右に入っている年数×365日を足して、今日の日付と比較
Target.EntireRow.Font.ColorIndex = 5 '青
Else
Target.EntireRow.Font.ColorIndex = 0 '黒
End If
End If
End Sub
日付を入れると「全部青になってしまいます」
ちなみに
If DateAdd("y", Target.Cells.Offset(0, 1).Value, Date) > Date Then
と年数バージョンでもやってみましたが、同じ結果orzでした。
全然わかりません、足して日付が今日より前なら「保証切れ=青色」にしたいのですが・・。
日付と日付を比較できていないのでしょうか?単位が違う状態で比較しているのでしょうか?
0566デフォルトの名無しさん
2008/10/18(土) 05:47:32おいおいw、悩み過ぎてわけわかんなくなったのか?ガンガレ
今日の日付に足したら、何足したって未来になるだろw
>>562のでほぼ合ってるんだよ
オレのヘルプには "y" じゃなくて "yyyy" ってのがあるんだが、
おまいのにはないのか?
0567565
2008/10/18(土) 06:29:37yyyyでしたか・・・、さっそく書き換えるといけました!感動しました。
たしかにadddateで今ヘルプを見ると、
設定値 内容
yyyy yyyy
y 年間通算日
yyyy・・・内容書いていませんwww (by Office 2003)
でもyは、その年から何日後という意味なんですね、こんなの思いもよらなかったです。
しかし、大問題が発生しました。
xlsファイルを「開いたときに今日の日付を比較しないといけない」ので、
worksheet_changeじゃだめなんです。
workbookが開いたとき、な方法があればいいのですが、
worksheet_activate、selectionchangeでも反応しませんでした。
Private Sub Worksheet_Change(ByVal Target As Range)
ここをどのように書き換えれば、読み込み時に再判定してくれるのでしょうか?
0568565
2008/10/18(土) 06:53:58たぶん、worksheet_activateイベントで良いと思うのですが、
activateになった時に計算させるということは、
自動的に
Private Sub Worksheet_Activate(ByVal Target As Range)
If Target.Column = 1 Then
If DateAdd("yyyy", Target.Cells.Offset(0, 1).Value, Target.Cells.Value) < Date Then
Target.EntireRow.Font.ColorIndex = 5 '青
Else
Target.EntireRow.Font.ColorIndex = 0 '黒
End If
End If
End Sub
Private Sub部分を変えただけだと
違うシートを選んで、選択し直すと
「コンパイルエラー プロシージャの宣言がイベントまたはプロシージャの宣言と一致していません」
と出ますが、すでに上の言葉が理解できません。
if文以下も変更しなければならないのでしょうか?
byヘルプ
プロシージャの名前はイベントと同じ名前ですが、パラメータの数と型が一致しません。
イベント プロシージャに新しくパラメータを追加したときなどに、このエラーが発生します。
たとえば、フォームの Form_Load イベント プロシージャを次のように変更すると、このエラーが発生します。
ダメです、わけわかりませんorz
0569デフォルトの名無しさん
2008/10/18(土) 08:23:40> yyyy yyyy
ちょwマジでw
おちおち「ヘルプ読め」とも言えんじゃないか
まあそっちは解決したようで良かった
イベント変更の方だが、worksheet_activateは引数を取らないから、
そうなるのは当然だな
引数を消して、targetを自前で指定してやればOK
つか、workbook_openイベントもあるんだが
つか、今さらだけど、
色変えたいだけなら条件付き書式でもできるがw
0570デフォルトの名無しさん
2008/10/19(日) 02:32:280571568
2008/10/19(日) 02:58:41>色変えたいだけなら条件付き書式でもできるがw
こ、こんなのあったんですか・・。
春先ぐらいから悩んでいたのが、一撃で吹っ飛びました。
わざわざVBAを使う必要無かったんだ・・・。
___________
||
|| ⊂⊃
|| ∧ ∧
|| ( ⌒ ヽ でも勉強にナターヨ・・・
∧||∧ ∪ ノ
( ⌒ ヽ 彡 V
∪ ノ フワーリ
∪∪
0572デフォルトの名無しさん
2008/10/19(日) 03:29:41>>559もそうだし、こういう奴、実は多いのか?
何という時間の無駄
0573デフォルトの名無しさん
2008/10/19(日) 07:09:25ァ ∧_∧ ァ,、
,、'` 。゚( ゚^∀^゚)゚。,、'`
'` ( ⊃ ⊂) '`
0574デフォルトの名無しさん
2008/10/19(日) 07:12:510575デフォルトの名無しさん
2008/10/19(日) 12:16:550576デフォルトの名無しさん
2008/10/19(日) 17:15:030577デフォルトの名無しさん
2008/10/19(日) 20:25:44Excel総合相談所74で質問が出てますよ。(レス番号325です)
0578デフォルトの名無しさん
2008/10/19(日) 20:49:32この手ので延々悩むんよね
心理的ハードルを超えさせる書式の魔力おそるべし
0579デフォルトの名無しさん
2008/10/19(日) 21:31:474色問題お願いします。
0580デフォルトの名無しさん
2008/10/19(日) 22:29:21ありがと
解決済みだった
>>579
全ての図形が4色で塗り分けられるとかなんとかだよね
図形の形とか定義あるのかな?
セルに色塗るなら二色で出来ちゃうし
0581デフォルトの名無しさん
2008/10/19(日) 22:33:43格納したいんですが、ワークシートに書き出さずに直接入れる方法はありますでしょうか?
0582デフォルトの名無しさん
2008/10/19(日) 22:43:16あります
入力規則のリストなら、マクロの記録録ればわかります
コントロールオブジェクトのコンボボックスの方はVBAヘルプに載ってます
但しフォームツールのコンボボックスなら多分セル書き出し必須
0584デフォルトの名無しさん
2008/10/19(日) 22:51:024色問題ってこんな感じのです。
ttp://yougo.ascii.jp/caltar/4%E8%89%B2%E5%95%8F%E9%A1%8C
0585デフォルトの名無しさん
2008/10/19(日) 22:59:02ありがとう
1.A1からランダムにIDつけて、同ID隣り合わせを領域と見なす
2.領域ごとに、隣り合わせ同色にならないように色IDを付ける
3.色IDが1から4で収まっているか判定
っていうアプローチでよいかなあ
アルゴリズムの問題っぽいがw
■ このスレッドは過去ログ倉庫に格納されています