No.2ベストアンサー
- 回答日時:
チェックデジットを数式に変えて判定するということですよね?
簡単なことだと思いますが。
8桁と13桁の違いは対象のレングス(文字列長)を判定して式を分岐させればいいですし、特に難易度は高いとは思えません。
とりあえずVBの例がここにあります。
http://www.ruriplus.com/msaccess/tch/tch_049.html
ExcelのVBAにするのにはそんなに違いはないでしょう。
参考URL:http://www.ruriplus.com/msaccess/tch/tch_049.html
ありがとうございます。
何分VBは初心者で、エクセルのVBA以外の知識は殆どないもので・・・。
いただいたURLの情報は、関数を作成するというものですね。自分で試してみたことはないのですが、頼ってばかりですと成長できないので、こちらを参考に何とか組み立てていきます。
No.3
- 回答日時:
>数式で一度に行うということは可能でしょうか
エクセルの通常の関数式では出来ません。複雑になりすぎると言うのが正しいでしょうが。
#1のご回答のようなことを、関数式でやろうとすると
関数のネストが深くなり過ぎて、手におえないでしょう。
そこでユーザー定義関数を作るのが、この場合適当でしょう。
>VBは初心者で、エクセルのVBA以外の知識は殆どないもので・
VBAだって、そう甘いものやおまへんで。
VBAのユーザ定義関数を作るのポイントは、シートのセルには、=JAN8(A1)のように,引数にセル番地を入れ、VBEの標準モジュール(必ず標準モジュール)には
Function jan8(a)
(aをセルに入っている数や文字列として扱う、すなわち演算する)
End Function
とします。JAN8としたのは、JAN13と関数を分けられれば分けた方が、2モジュールになるが、考えやすいかと思いました。各行に混合しておれば、1つの関数にして、#2のご回答のように、Case分で分けざるを得ません。
了解です。
この辺まで複雑な計算になると、ユーザー定義関数の領域ということですね。
mld_sakuraさんに教えていただいたURLを参考にがんばってみます。
ご親切にありがとうございました。
No.1
- 回答日時:
データ=4912345?の場合(?=cd)
5+3+1+4=13(偶数桁を足す)
13x3=39 (それに3を書ける)
4+2+9=15 (奇数桁を足す)
39+15=54 (両方を足す)
54の下一桁を取り出し
10-4=6 (10から下一桁を引く)
チェックディジットは6 (ゆえに)
49123456 がコード
13桁の場合も同じ
補足の質問に対してimogasiさんより回答がありました。
数式では、難しいみたいですね。
何とかユーザー定義関数を組み立てていきます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 最終行まで数式をコピーする 3 2023/01/03 15:44
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Excel(エクセル) Excel ある複数列に数値を入力した際に、別の列に本日の日付を入力したいです 7 2023/03/01 23:31
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Excel(エクセル) SUMIFS 一部の条件のどちらかを参照する場合を教えてください。 2 2022/04/26 12:48
- Excel(エクセル) エクセルVBA、間違っているコード内容を正して頂けませんか? エクセルワークシートに納品書を作ったの 2 2023/08/02 21:13
- Google Drive GoogleサイトにQRでアクセスするとgoogleログインが求められる 1 2022/05/24 21:37
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- その他(買い物・ショッピング) JANコードの登録について 1 2022/07/23 14:19
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルのオートフィルターのしぼりをクリアーしたい 2 2022/12/24 08:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのセル内でタブキーの...
-
エクセルで3Dの円錐形を作成...
-
差し込み印刷で文字化け!
-
エクセル マクロ テキストファ...
-
エクセル データ追加するもグ...
-
【エクセル】原点を通るグラフ...
-
エクセルで関数グラフを描きた...
-
エクセルVBA 長さ0の文字列をNu...
-
エクセルのグラフでデータテー...
-
エクセルの変換
-
一太郎からエクセルに
-
エクセル 文字の先頭4文字だ...
-
VBA初心者です。電話番号の数字...
-
エクセルの数字、頭2桁を後に...
-
エクセルマクロでセルの文字サ...
-
エクセルオンラインのみ勝手に...
-
エクセルで全波整流回路の波形
-
エクセルのセルに入った二つの...
-
イラストレーターをエクセルへ...
-
エクセル 関連付けのやり方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのセル内でタブキーの...
-
エクセルの神よ、ご回答を! エ...
-
エクセルで3Dの円錐形を作成...
-
エクセル 文字の先頭4文字だ...
-
エクセル データ追加するもグ...
-
エクセルのグラフでデータテー...
-
エクセルオンラインのみ勝手に...
-
文字をアルファベット順に3つ...
-
差し込み印刷で文字化け!
-
エクセルVBA 長さ0の文字列をNu...
-
日報のデータを月報にデータを...
-
VBA初心者です。電話番号の数字...
-
エクセルにて指定文字数以上の...
-
エクセルのセル内の文字の一部...
-
VBでリアルタイムにグラフを...
-
エクセル2000:phonetic関数で...
-
文字を入力するだけで、強制終...
-
ウェブから貼ったドロップダウ...
-
#DIV/0!があるデータの折れ線...
-
エクセルのデータを自動的にweb...
おすすめ情報