-
三流君の [コンビニ系HPへ] [VBA系HPへ] [ASP系HPへ] [愚痴系HPへ]
戻 る
確認したい方は、→011.lzh をダウンロードして、見てください。

下記のような感じで、テストしました。

VBAテストモジュール
<Excel使いに負けた日...ワークシート関数TRIM編> 目次  1.はじめの挨拶 2.それは、土曜出勤のことだった 3.「ExcelのTrim関数でできるよ」そんなバカな、、 4.飲み会でも、技術話? 5.おわりの挨拶 ---------------------------------------------------------------------------- /* * 1.こんにちは */ こんにちは、今週も、始まりますね。(平和な一週間でありますように、、、) 今回は、先週土曜日、 Excel使いと戦って、負けた?ことを中心に書いていこうと思います。 *↑隣の部(データサービス)のやさしい部長さんです。  負けたのに、飲み代も1000円だったしねぇ。 原因は、思い込みだったけど、、、う〜ん、くやしい。 前置きは、これくらいにして、そろそろ、始めます。 /* * 2.それは、土曜出勤のことだった */ 先週、土曜日、出勤してました。 システム課のメンバー帰ったし、 一人になったので、メールチェックを行う。 *まったく、会社の設備を使って、、、とんでもないヤツだ。。。 おっ、メール来てるジャン。(チョット嬉しい) なになに、がんばってください、、ハイ、ガンバリマスヨなんとか、 次は、 >SP_CNV.MDBで姓と名の間に >半角スペースが複数存在(3個以上)する場合 >全角スペースと半角スペースが混在する場合 >全角スペースが複数存在(2個以上)する場合 >はどう処理すれば良いでしょうか? >お知恵をお貸し下さい。 あっ、やられた、、、データの想定ミスだぁ。。。 確かに、半角スペースが3つだと、全角2つになってしまう。。 例)匿名 希望-->匿名□□希望 となってしまう。 ちぇ、またミスっちゃったなぁ。まぁいっかと思いつつ、帰る準備をする。 隣のデータサービス課(データパンチ関係の仕事してます)に システム課帰りますと挨拶をしに行きました。2名まだ残ってました。 部長「あかしやき3人で食べに行かない?」と飲みの誘い。 何を思ったか、部長・スパーバイザーさんに、 「データ処理関係で、姓名間全角スペース一個とか指定って、よくあるんですか?」 と聞いたところ、 SP「よくあるよ、半角スペース2個じゃなくて、全角1つにしてとか」 と答えが返ってきました。 ここでやめときゃいいのに、 「半角の変換プログラムサンプルで作ったら、半角3つ入った時、処理できなくて」 と話を続けてしまった、、、 隣に座っていた、部長が一言、 「ExcelのTrim関数でできるよ」 と悪魔のささやき???(ほんとは、親切なので、天使の助言かな?) これが、長い土曜日の始まりだった、、、 /* * 3.「ExcelのTrim関数でできるよ」そんなバカな、、 */ 心の中、で、できないでしょ、Trim関数じゃ、、、左右のスペース取るだけじゃないの? と思い、「trimって、左右のスペース取るだけじゃないの?」と言葉の砲撃? 部長「じゃ、やってみよう」とパソコンの電源を入れる。 しばらくするとWin98のロゴ、 Excelを立ち上げて、データと関数を入れる。 A列       B列 1 匿名 希望   =trim(a1) --> 匿名 希望 2 匿名□□希望 =trim(a2) --> 匿名□希望 あっ、なんで中のスペースが取れるの?と驚く。。。 心の中では、絶対できない、、、飲み代カケてもいいと思っていた。 (カケは勝って負けても嫌いなので、普段はやらないのですが、  そんな私がカケけたくなるほど、自分の中では絶対の自信だった) 動揺しつつ、「半角3つを全角1つにしたいので」と言ってしまった。 Excel使いの部長には、なんでも無い攻撃で、 「=jis(trim(a1))でできる」 とあっさり、返された。 おみごと、、、でした。。。 Excel使いに負けた、、、と思いながら、飲みに行く。。。 枠外開設・グチ --- 思い込みとExcelワークシート関数 Excelワークシート関数とVBAの関数、 同名の関数でも動作が違うみたいです。 みなさんも、変な思い込みは無くして、相手の言葉を良く聞きましょう。 飲み代、カケなくてよかったなぁ、、、ほっとしてます。 だから、テメエは(思い込みの激しいKen3は)、 勝負ごと弱いんだよ。  ハイ、了解。ゴメンネ。 ちなみに、VBAだと、真中のスペース取れません、安心?してください。 Sub Macro1() Dim a As String a = "匿名     希望" MsgBox Trim(a) End Sub だと、中のスペースはそのままで、表示されます。 /* * 4.飲み会でも、技術話? */ 普通なら、3の敗戦で、マルマガ終わるんだけど、 飲み会でも技術話?の続きありました。 飲んでる時、やさしい部長より、 Excelで不思議な、質問、ありました。 IF(B5>"17:00","残業","") だと、判断できないと、、、 って、飲んでる時、言われてもなぁ...  B列 C列 5行 18:00 =IF(B5>"17:00","残業","") 6行 18:00 =IF(B6-"17:00">0,"残業","") 7行 18:00 =IF(B7>"17:00"+0,"残業","") 8行 18:00 =IF(B8>time(17,0,0),"残業","") 5行目の=IF(B5>"17:00","残業","") ですんなり、できないみたいです。 なんか、あってる?ぽいけどなぁ。 で、 苦肉の策?で、 6行目の=IF(B6-"17:00">0,"残業","") みたいに、17時を引いて、0以上だったら に式を変更したらうまくいったらしいです。 また、7行目みたいに、+0(なんで0たすの?) を入れると、思い通り、動作します。 その時、飲んでたので(言い訳?) #17:00#と囲えば、=IF(B5>#17:00#,"残業","") 日付型になるからOKでは と答えたのですが、本日、やってみたら、これは、ウソでした。 *#はVBAだけみたいです、、、ワークシート上はエラーになります。 お返しをしようと、#で囲うを教えたんだけど、、また、裏目でした。 だから、確認してから、答えようよ、、はいはい。。。 話は、戻って、 キレイ?に書くと、8行目のTime関数を使って、 時間(シリアル値)を返して、比較するのが良いみたいです。 "17:00"だけだと、時間と文字列を比較するので、ダメ。 b5(時間) - "17:00"(文字列)は、自動的に時間の引き算してくれるのでOK "17:00"(文字列) + 0(数値)は、なぜか結果が時間になる?のでOK お行儀よく書くなら、Time関数を使ってtime(時,分,秒)を使います *VBAのタイム関数とは、動作が違うので、注意してください。 枠外解説・グチ -- Excel97...もう少し賢ければ、、 Excel2000だと、=IF(B5-"17:00">0,"残業","")で良いかもしれないので、 インストールしている人は、結果、教えてください。 ken3のExcel97では、ダメでした。 VBA 日付型 (Date) ヘルプから、引用 --- 日付型 (Date) の変数は、IEEE 64 ビット (8 バイト) の浮動小数点数の変数です。西暦 100 年 1 月 1 日〜西暦 9999 年 12 月 31 日の範囲の日付と、0:00:00 〜 23:59:59 の 範囲の時刻を表すことができます。日付型の変数には、日付リテラルとして認識可能な任 意の値を代入できます。日付リテラルの形式は、#1993 January 1# または #93 Jan 1 # のようにシャープ記号 (#) で囲む必要があります。 ワークシート関数 TIME のヘルプから、引用 ---- 指定された時刻に対応するシリアル値を返します。計算結果のシリアル値は、0 〜 0. 99999999 の範囲にある小数値で、0:00:00 (午前 0 時) から 23:59:59 (午後 11 時 59 分 59 秒) までの時刻を表します。 書式 TIME(時, 分, 秒) 時 時を表す数値を 0 〜 23 の範囲で指定します。 分 分を表す数値を 0 〜 59 の範囲で指定します。 秒 秒を表す数値を 0 〜 59 の範囲で指定します。 使用例 ダブル クォーテーション (") は、戻り値が文字列であることを表します。 TIME(12,0,0) = 0.5 (正午に対応) TIME(16,48,10) = 0.700115741 (午後 4 時 48 分 10 秒に対応) /* * 5.おわりの挨拶 */ 長い?土曜日が終わって、日曜日、メルマガ書いてます。 ぜったいできる、、、と言って飲み代かけなくて、 よかったなぁ、、の結果レポートでした。 *何かの参考になれば、幸いです。。。 なんか、疲れが貯まったような。 まぁ、飲み代1000円で、いろいろな発見あったし、良かったかな? でも、飲んでる時は、楽しい話をしましょうよ、、技術話じゃなくて。 やさしい部長に感謝の三流プログラマーKen3でした。。。 では、また。。。 次回は、Excel使いに勝った話をしたいですねぇ。 *今度は、今風・流行り言葉のリベンジだぁ〜、、、と変な気合を入れる。   返討ちにあわないでね、、、はい。。。

VBA系の無料メルマガ書いてます
メルマガ『VBAで楽しくプログラミング』(無料) を購読しませんか?
めろんぱん E-mail


...



番外編 愚痴系で書いてた今日の一品 (短いサブ関数など)
2000/05/13 SQL Count関数を使ってみる
2000/05/11 Access97 標準関数Midなどが使えない
2000/05/09 SendObjectのエンコード
2000/05/08 クエリーで〜以外とは
2000/04/27 Imagingコントロールを使ってみた
2000/04/25 Excel97 VBA イベントなど
2000/04/24 Access97で複数のプリンタを切替えて使用
2000/04/20 書式付きエクスポート DoCmd.OutputToで、できます
2000/04/19 Access97でExcel形式へExport時に書式設定を行いたい
2000/04/13 Access97でOutlook97/98とリンクする方法
2000/04/13 VBA Nameステートメント
2000/04/04 Accessでキー取得
2000/04/04 AccessでFile参照ダイアログ?
2000/04/03 縦書用数値変換改良
2000/04/01 Access Err テーブルを消したい
2000/03/31 縦書き数値、どうしてますか?
2000/03/29 VBA 手抜きで、処理後、explorerを開く
2000/03/28 Access --> Word へデータ
2000/03/24 名前一覧Excelの機能で、同じことできました
2000/03/23 Excel97 VBA セルに付けた名前一覧を作成する
2000/03/21 Excel セルに名前付け
2000/02/25 iniFileを読む GetPrivateProfileString
2000/02/15 Excel VBA Rangeオブジェクトとサンプル
2000/02/14 Access97 SizeMode/OLEサイズ で画像調整
2000/02/10 Access97 Pictureプロパティとサンプル
2000/02/09 Access97 集計クエリーで重複値をハジク
2000/02/07 Access97 サブフォームへ値をセット
2000/02/04 Access97 コントロールソース、チョットした使用法
2000/02/01 Access97 フォームフッター
2000/01/18 Access97 now()関数で有効期限処理、、、

_/_/ _/_/ _/_/ _/_/ _/_/
三流君のHP主な飛び先
VBAで楽しくプログラミング 最新情報 掲示板 バックナンバー メルマガ登録と解除
コンビニのオモテとウラ話 最新情報 掲示板 バックナンバー メルマガ登録と解除
ASPで遊ぶ、失敗する 最新情報 掲示板 バックナンバー メルマガ登録と解除
AB型三流PG 業務のグチ 最新情報 掲示板 バックナンバー メルマガ登録と解除
初心者にやさしいプログラム 最新情報 掲示板 バックナンバー メルマガ登録と解除
ネットで稼ぐ本音と失敗談 最新情報 掲示板 バックナンバー
www.ken3.org(サイト内)から Google を利用して、

人気ページ/アクセスランキング
↑一週間の訪問者数と人気のページを表示してます

その他、宣伝ページです
・[ アンケート/ポイント]などで月500円を必死に稼いでます(笑)
・[ SOHO/在宅プログラマー/派遣]の話題、Webエントリー後の反応など
・[ 出会い系]のお話、自分で出会い系のシステム作れないか?探ったお話
・[ ネットで小金を稼げるか?]実験中だが成果は無し
※あとは、[パソコン関係の書籍]や[ゲームソフト]、 [パソコンパーツ] をバナーから売ろうとするけど、
 なかなかうまくはいかないよね(笑)
←パソコンの技術系の書籍を探しているなら コンピュータ関連の出版社33社(アスキー、インプレス等)が共同運営するコンピュータの本・専門店 種類が豊富で探し易い※在庫ありが48時間以内発送

プログラム系、流れや基本系?
[No.4 プログラムって?流れって?]
[No.5 変数・乱数・定数]
[No.8 配列とArray関数]
[No.9 If文で範囲のチェック]
[No.10 Select Case XX To XX と Is >= XX]
[No.11 InputBox関数で簡単な値を受け取る]
[No.12 入力結果の判断いろいろ]
[No.19 Exit Subで途中退場する]
[No.20 配列変数ですっきりと?(2次元配列)]
[No.21 変数の型を意識する]
[No.22 関数って?Subプロシージャを呼ぶ]
[No.23 値を返すユーザー関数、Function関数]
[No.24 関数のパターンを少し]
[No.35 イベント処理について]
[No.36 オブジェクトのプロパティについて]
[No.37 オブジェクトのメソッドについて]
[No.45 歌詞の表記を参考に関数を作成]
[No.73 オブジェクトのループはFor Each In でループさせる]

VBA関数
[No.3 Dir関数でファイルの存在をチェックする]
[No.17 Val関数で文字列を数値に変換してみた]
[No.18 文字列を数値に変換、CIntで変換]
[No.38 キャラクタコード?って何? Chr関数、Asc関数]
[No.39 StrConv関数で半角を全角文字にしてみた]
[No.40 Len関数で遊ぶ、遊ばれる]
[No.72 文字列を日付型に変換、Cdateへの値の渡し方いろいろ?]
[No.77 Not演算子で細工する、プログラムはパズルのように...]

Excel関係
[No.28 Excelのグラフをgifへ変換 .Exportメソッド使用]
[No.43 セルのB3を参照するには?]
[No.44 Cells(257)とCells(2,1)の関係]
[No.49 Excel Rows(n).Select で行選択]
[No.47 Excel Application.GetOpenFilenameでファイル名取得]
[No.60 Cancel=Trueの使い方(例題:Excel 右クリック禁止)]
[No.51 Excel Range オブジェクトを使う]
[No.86 Excel 起動オプションのお話(引数的なラブレターを渡したい)]

Excel UserForm
[No.30 Excel UserForm テキストボックスのイベント]
[No.32 Excel UserForm_KeyDownイベント発生条件]
[No.34 ┌ ─ ┐│└ ┘を使って、文字列を囲ってみたい]
[No.42 ExcelのForm シートと連動させる]
[No.46 カウンタで先頭行チェック、空白で終わりの判断]
[No.61 Excel Form 閉じる方法 Unload Me]
[No.63 Excel UserForm で データ・フォームの機能を真似てみる]
[No.68 Excel Formで値を設定、標準モジュールで使用したい]
[No.84 Excel UserFormでコンボボックスを使用してみた]

Access 関係
[No.1 いきなりサンプルじゃぁねぇ、、文句の一つ言いたいよ]
[No.75 空のMDBを作成後、DoCmd.CopyObjectでテーブルコピー]
[No.85 Access クエリーで演算フィールドを使ってみる]

Access フォーム
[No.41 AccessのForm .Pictureプロパティで画像参照]
[No.62 Access フォームでパスワード入力(入力後*****表示)]
[No.65 Access Form TextBoxの.SelLength .SelStartプロパティ]
[No.66 Access ユーザーマスターのチェックとメニュー切り替え]
[No.67 Access Formを隠す Me.Visible = False (Closeとの違い)]
[No.69 Access コンボボックスを自動で開きたい]

Access レポート
[No.74 Access 列型レポートの左端に印刷したい]
[No.76 Access レポート Me.NextRecord = Falseで移動を止める]

Access から Excel 連携
[No.2 AccessからExcel出力]
[No.7 MDBと同フォルダのExcelファイルを開く]
[No.13 Excel セルに名前を付けてみる]
[No.14 Excel 隣のシートを参照して逃げる]
[No.48 AccessからExcelブックを開き、書式設定を行う]
[No.54 AccessからExcel開いて、処理終了後に閉じたい]
[No.58 Access クエリーを Excel既存シートへ エクスポート]
[No.59 Excelのマクロ付きフォーマットを壊されないように]
[No.64 AccessからExcelファイルを開いて・印刷して・閉じたい]

Excel から Access 連携
[No.15 ExcelからAccessのフォームを開いてみました]
[No.16 ExcelからAccessのモジュールを呼んでみました]

テキストファイル処理
[No.27 テキストファイル処理 ファイルへの書き込み]
[No.29 テキストファイル処理 ファイルからの読み込み]
[No.31 Write #で ””を付けた書き込み]
[No.33 FreeFile関数で空いてるファイル番号を返す方法]

インターネットエクスプローラーの操作(InternetExplorer.application)
[No.50 IE起動 CreateObject("InternetExplorer.application")]
[No.52 InternetExplorer.application .document.body.innerText]
[No.53 文字列を探す、InStr関数の使い方]
[No.70 InternetExplorer.application .document.all(0).innerHTML]
[No.71 IE操作 リンク先を取出す .Document.links(i).href]

Outlookを操作する
[No.55 Outlookを操作してメールを送りたい]
[No.56 Outlookから複数のアドレスにBCC送信]
[No.57 Outlook メールアイテムの形式でハマる]
[No.78 Outlookでファイルを添付するには?.Attachments.Add]

FTPの設定ファイルを作成してみた
[No.25 コマンドラインのFTPを使ってみた]
[No.26 FTP -n オプションとuserコマンド]

Excel HTML表作成ツールもどき
[No.80 Excelのセル範囲をHTMLの表(.html)にしてみる]
[No.81 セルの右寄せ、中央寄せをHTMLの表にしてみる]
[No.82 背景色、フォントカラーをHTMLの表にしてみる]
[No.83 改行LFを<BR>などHtml用にエンコードして書き込む]

その他
[No.6 ファイルの起動場所を知る方法]
[No.79 SJIS--JISコードの文字列を作成したい]

...
挨拶
最後まで読んでいただき、どうもです。
失敗続きのAB型の変わり者 三流プログラマー Ken3です。
[Excel/Access VBA],[ ASP(Active Server Pages)]の解説
[ プログラマーの愚痴]、[ 元コンビニ店長時代の話] をネタにしてHP作成、メルマガ書いてます。
最近、[初心者にやさしいプログラム]の解説と[ ネットで稼ぐ小悪テク]の解説を始めようかなぁと思ってます。
作者に感想・質問/要望を送る(気軽に質問・感想書いてください)
あなたのお名前(ニックネーム) さん

作者からの返信は、 不用 掲示板 E-mail で受信したい
※送っていただいた質問・感想はアドレス以外、メルマガで紹介する場合があります

...